我正在尝试将字符串(或单个字符)转换为 java 中给定位数的二进制字符串。假设给定的数字是 5,所以字符串“zx~q”变为 01101、10110、11011、10011(我已经编写了二进制文件)。但是,我需要再次将这些二进制文件恢复为“abcd”。如果给定的数字发生变化,则数字(因此二进制文件)将发生变化。
有人有想法吗?
PS:Integer.toBinaryString()
变成8位二进制数组。
看起来像Integer.toString(int i, int radix)
并且Integer.parseInt(string s, int radix)
会做的伎俩。
你可以这样实现。
要将abcd转换为 1010101111001101,
class Demo {
public static void main(String args[]) {
String str = "abcd";
for(int i = 0; i < str.length(); i++) {
int number = Integer.parseInt(String.valueOf(str.charAt(i)), 16);
String binary = Integer.toBinaryString(number);
System.out.print(binary);
}
}
}
将 1010101111001101 转换为 abcd
String str = "1010101111001101";
String binary = Long.toHexString(Long.parseLong(str,2));
System.out.print(binary);