请看下面的机器码
0111001101110100011100100110010101110011011100110110010101100100
这意味着什么。我需要将其转换为字符串。当我使用 Integer.parseInt() 以上面作为字符串和 2 作为基数(将其转换为字节)时,它给出了数字格式异常。
而且我相信我必须将其分成 8 件套(如 01110011、10111010 等)。我对么?
请帮助我将其正确转换为字符串。
谢谢
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);
打印“强调”
读取大整数的一种更短的方法是使用 BigInteger
final String s = "0111001101110100011100100110010101110011011100110110010101100100";
System.out.println(new String(new BigInteger('0'+s, 2).toByteArray(), 0));
印刷
stressed
这取决于字符串的编码。
ASCII 编码的字符串每个字符使用 1 个字节,而 unicode 编码的字符串每个字符使用 2 个字节。还有许多其他类型的编码。每种编码的二进制布局都不同。
因此,您需要找到用于将此字符串写入二进制格式的编码