Java два дополняют двоичное до целого

Я знаю, что преобразование десятичной в двоичную с Integer.toBinaryString(355) = 0000000101100011 а также Integer.toBinaryString(-355) = 1111111010011101 (где я беру младшие 16 бит 32-битного результата).

То, что я хотел бы сделать, это другой способ и взять двоичную строку дополнения 16-битных двойок и преобразовать в десятичную.

т.е.

0000000000110010 =  50
1111111111001110 = -50

Скорее, чем 1111111111001110 = 65486

Как бы я это сделал?

2 ответа

Решение

Вы должны прочитать результат в short,

short res = (short)Integer.parseInt("1111111111001110", 2);
System.out.println(res);

Это печатает-50,

Использовать short? Они занимают 16 бит.

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

Другие вопросы по тегам