How to convert a negative integer into two's complement binary form? (Java)

jbreed picture jbreed · Apr 23, 2011 · Viewed 8.5k times · Source

I need to convert numbers, positive and negative, into binary format - so, 2 into "00000010", and -2 into "11111110", for example. I don't need more than 12 bits or so, so if the string is longer than that I can just trim off the leading sign bits. It seems like Integer.toBinaryString() will do positive numbers, but is there one that can do negatives?

Answer

Chris Jester-Young picture Chris Jester-Young · Apr 23, 2011

Integer.toBinaryString works for negatives too. :-) For example, Integer.toBinaryString(-2) returns 11111111111111111111111111111110.

If you take the rightmost 12 characters, you have the bottom 12 bits, as required.