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