一尘不染

如何将字节转换为其二进制字符串表示形式

java

例如,一个字节B中的位是10000010,如何将这些位str从字面上分配给字符串,即str = "10000010"

编辑

我从二进制文件中读取字节,并将其存储在字节数组中B。我用System.out.println(Integer.toBinaryString(B[i]))。问题是

(a)当位以(最左边)1开头时,输出不正确,因为它转换B[i]为负int值。

(b)如比特首先0,输出忽略0,例如,假设B[0]有00000001,则输出为1代替00000001


阅读 197

收藏
2020-09-08

共1个答案

一尘不染

用途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

2020-09-08