如何将1和0转换为String?

时间:2012-06-24 16:59:58

标签: java binary bytearray byte

请查看以下机器代码

0111001101110100011100100110010101110011011100110110010101100100

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

我相信我必须把它分成8件(如01110011,10111010等)。我是对的吗?

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

由于

3 个答案:

答案 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个字节。还有许多其他类型的编码。每种编码的二进制布局都不同。

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