【发布时间】:2012-09-06 23:56:07
【问题描述】:
例如,一个字节B中的位是10000010,如何将位分配给字符串str字面意思,即str = "10000010"。
编辑
我从二进制文件中读取字节,并存储在字节数组B 中。我使用System.out.println(Integer.toBinaryString(B[i]))。问题是
(a) 当位以(最左边的)1 开始时,输出不正确,因为它将B[i] 转换为负整数值。
(b)如果位以0开头,则输出忽略0,例如假设B[0]有00000001,则输出为1而不是00000001
【问题讨论】:
-
我很困惑;这是诡计吗?
-
您是在问如何将
byte转换为以 2 为底的字符串? -
我刚刚为另一个线程添加了一个答案(将一个值转换为二进制数字字符串),它适用于
Boolean、Byte、Short、Char、@ 987654339@ 和Long。 stackoverflow.com/a/54950845/501113 -
String#Format() 可能能够处理这个问题,如果你告诉它使用 8 的宽度。同样 System.out.printf()。