2016-05-13 144 views
1

我想将包含8个二进制数字的字符串转换为一个字节。 我已经尝试了这种方法:Java |二进制字符串到字节

byte b = Byte.parseByte(s, 2); 

如果字符串为“00000000”,工作正常,但如果是“11111111”是行不通的。

我怀疑是与基数有关,但我无法弄清楚。

回答

1
  1. 使用Integer.parseInt2这样Integer.parseInt("11111111", 2)
  2. 基数那么,如果你真的想为byte简单地转换为byte这样的(byte) intValue

的整数所以完整的代码:

System.out.println((byte) Integer.parseInt("11111111", 2)); 

输出:

-1 

NB:为什么-1?因为byte是一个8位的有符号整数,从-128127,所以在这里代替255得到-1