我有一个字节数组,我想用二进制打印。我可以循环遍历数组并将Integer.toString(byteArray[i], 2)
或Integer.toBinaryString
连接到一个字符串,但任何以0开头的字节都会有那个0修剪掉了。我怎么能避免这个?
例如,如果数组是:
{0b11110000, 0b10101010, 0b11001100, 0b00001111}
我会得到:
1111000010101010110011001111 // what is printed
11110000101010101100110000001111 // what I want
// 0's are missing ^--^
答案 0 :(得分:1)
使用类似于此示例的字符串格式:
byte b2 = (byte) 2;
String s2 = String.format("%8s", Integer.toBinaryString(b2 & 0xFF)).replace(' ', '0');
System.out.println(s2); // 00000010