我可能忽略了一些愚蠢的事情,但我从来没有在代码中处理过二进制,并且认为在加密程序中练习它是个好主意,为了好玩。 长话短说,我能够将字符串转换为二进制(以字符串的形式),但无法弄清楚如何进行相反的操作。
现在,我有这样的东西:
public static String bytesToString(String bytes){
int i = bytes.length()/8;
int pos = 0;
String result = "";
for(int j=0; j<i; j++){
String temp = bytes.substring(pos,pos+8);
byte b = (byte) Integer.parseInt(temp);
result = result + Byte.toString(b);
pos++;
}
System.out.println("Result: " + result);
return result;
}
我认为字节被解析为文字数字。我错过了什么? 编辑:为了澄清,我之前将一串文本解析为位并将它们写入字符串。我想将这个字符串拆分成字节并将它们解析回字母。它需要“011010000110010101111001”并返回“嘿”。
最佳答案
如何使用 Integer.parseInt(text, 2)
?如,
public static int binaryToInt(String binary)
{
return Integer.parseInt(binary, 2);
}
我不确定为什么您的 binaryToString
方法既接受又返回一个字符串。
关于java - 将二进制字符串解析为文本/字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6222526/