Howto print Long in Binary?

java

Solution

you can do this

for(int i = 0; i < Long.numberOfLeadingZeros((long)l); i++) {
      System.out.print('0');
}
System.out.println(Long.toBinaryString((long)l));

That will get what you want except without the spaces between every 4 numbers (you should be able to code that though). There might be a way to do this automatically with a Formatter but I couldn't find it.

Edit:

you can use `String's` format method if you know the number of 0's you need (I forgot to change it back into a number this will fix the Exception).

String.format("%032d", new BigInteger(Long.toBinaryString((long)l)));

Problem

I am trying to print a Long in Binary, but it keeps cutting off `0`'s. Is there a way to force it to show all bits? This is my code: ``` long l = 1; System.out.println(Long.toBinaryString((long)l)); ``` Returns as mentioned only `1` due to removed `0`'s i wish to maintain: `0000 0000 0000 0000 0000 0000 0000 0001` Thanks in advance. My temporary nasty solution: ``` public String fillZeros(Long value) { String str = Long.toBinaryString((long) value); String temp; temp = str; while(temp.length() < 32) { temp = "0" + temp; } return temp; } ```

Original source

Related problems