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