Как преобразовать отрицательное целое число в двоичную форму дополнения до двух? (Джава)

Мне нужно преобразовать числа, положительные и отрицательные, в двоичный формат, например, 2 в «00000010» и -2 в «11111110». Мне не нужно больше 12 бит или около того, поэтому, если строка длиннее, я могу просто обрезать начальные биты знака. Кажется, что Integer.toBinaryString() будет делать положительные числа, но есть ли тот, который может делать отрицательные?


person jbreed    schedule 23.04.2011    source источник


Ответы (1)


Integer.toBinaryString работает и для негативов. :-) Например, Integer.toBinaryString(-2) возвращает 11111111111111111111111111111110.

Если вы возьмете крайние правые 12 символов, у вас будут младшие 12 бит, как и требуется.

person Chris Jester-Young    schedule 23.04.2011