1
我想将包含8个二进制数字的字符串转换为一个字节。 我已经尝试了这种方法:Java |二进制字符串到字节
byte b = Byte.parseByte(s, 2);
如果字符串为“00000000”,工作正常,但如果是“11111111”是行不通的。
我怀疑是与基数有关,但我无法弄清楚。
我想将包含8个二进制数字的字符串转换为一个字节。 我已经尝试了这种方法:Java |二进制字符串到字节
byte b = Byte.parseByte(s, 2);
如果字符串为“00000000”,工作正常,但如果是“11111111”是行不通的。
我怀疑是与基数有关,但我无法弄清楚。
Integer.parseInt
与2
这样Integer.parseInt("11111111", 2)
byte
简单地转换为byte
这样的(byte) intValue
的整数所以完整的代码:
System.out.println((byte) Integer.parseInt("11111111", 2));
输出:
-1
NB:为什么-1
?因为byte
是一个8位的有符号整数,从-128
到127
,所以在这里代替255
得到-1
。