例如,一个字节B中的位是10000010,如何将这些位str从字面上分配给字符串,即str = "10000010"。
B
10000010
str
str = "10000010"
编辑
我从二进制文件中读取字节,并将其存储在字节数组中B。我用System.out.println(Integer.toBinaryString(B[i]))。问题是
System.out.println(Integer.toBinaryString(B[i]))
(a)当位以(最左边)1开头时,输出不正确,因为它转换B[i]为负int值。
B[i]
(b)如比特首先0,输出忽略0,例如,假设B[0]有00000001,则输出为1代替00000001
0
B[0]
1
00000001
用途Integer#toBinaryString():
Integer#toBinaryString()
byte b1 = (byte) 129; String s1 = String.format("%8s", Integer.toBinaryString(b1 & 0xFF)).replace(' ', '0'); System.out.println(s1); // 10000001 byte b2 = (byte) 2; String s2 = String.format("%8s", Integer.toBinaryString(b2 & 0xFF)).replace(' ', '0'); System.out.println(s2); // 00000010
DEMO 。