for example, for 1, 2, 128, 256 the output can be (16 digits):
1, 2, 128, 256
0000000000000001 0000000000000010 0000000010000000 0000000100000000
I do not know "right" solution but I can suggest you a fast patch.
String.format("%16s", Integer.toBinaryString(1)).replace(" ", "0");
I have just tried it and saw that it works fine.