Displaying binary value of byte
During my fights with 7z format I realized a need to see a value of byte
in binary representation. Unfortunatelly there is no good way in Java, how to display binary value for the byte
primitive. The method Integer.toBinaryString()
takes int as its argument and a conversion byte to int does not work well for negative numbers. Following code will print a range of byte
values:
public class Test { public static void main(String[] args) { byte b = -127; for (int i = 0; i < 255; i++) { System.out.println(String.format("%4d = 0x%02X = ", b, b) + printBinary(b)); b++; } } public static String printBinary(byte number) { StringBuilder sb = new StringBuilder(8); for (int i = 8; i-- > 0;) { sb.append(((number & (1 << i)) != 0) ? 1 : 0); } return sb.toString(); } }