0

请看下面的机器码

‎0111001101110100011100100110010101110011011100110110010101100100

这意味着什么。我需要将其转换为字符串。当我使用 Integer.parseInt() 以上面作为字符串和 2 作为基数(将其转换为字节)时,它给出了数字格式异常。

而且我相信我必须将其分成 8 件套(如 ‎01110011、10111010 等)。我对么?

请帮助我将其正确转换为字符串。

谢谢

4

3 回答 3

11
final String s = 
  "0111001101110100011100100110010101110011011100110110010101100100";
final StringBuilder b = new StringBuilder();
for (int i = 0; i < s.length(); i+=8) 
  b.append((char)Integer.parseInt(s.substring(i,i+8),2));
System.out.println(b);

打印“强调”

于 2012-06-24T17:10:16.397 回答
2

读取大整数的一种更短的方法是使用 BigInteger

final String s = "0111001101110100011100100110010101110011011100110110010101100100";
System.out.println(new String(new BigInteger('0'+s, 2).toByteArray(), 0));

印刷

stressed
于 2012-06-24T17:37:22.100 回答
1

这取决于字符串的编码。

ASCII 编码的字符串每个字符使用 1 个字节,而 unicode 编码的字符串每个字符使用 2 个字节。还有许多其他类型的编码。每种编码的二进制布局都不同。

因此,您需要找到用于将此字符串写入二进制格式的编码

于 2012-06-24T17:03:15.790 回答