我想将一个由8个二进制数组成的字符串转换为一个字节。 我试过这个方法:
byte b = Byte.parseByte(s, 2);
如果字符串是“00000000”,则可以正常工作,但如果字符串是“11111111”,则不起作用。
我怀疑这与 Radix 有关,但我无法弄清楚。
最佳答案
- 使用基数为
2
的Integer.parseInt
,如下所示Integer.parseInt("11111111", 2)
- 然后,如果您确实希望将其作为
byte
,只需将整数转换为byte
,如下所示 (byte) intValue
所以完整的代码是:
System.out.println((byte) Integer.parseInt("11111111", 2));
输出:
-1
注意:为什么是-1
?因为 byte
是一个从 -128
到 127
的 8 位有符号整数,所以这里不是 255
你获取-1
。
关于 java |二进制字符串转字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37207277/