Насколько я знаю, при использовании дополнения 2 и первом числе 1, вы переворачиваете числа и находите значение нового байта и делаете его отрицательным. В javadoc говорится, что Integer.parseInt(String s, radix ) и Integer.valueOf(String s, radix) оба должны возвращать целочисленный объект со знаком, но когда я проверяю это следующим образом:
System.out.println(Integer.parseInt("10000001", 2));
System.out.println(Integer.valueOf("10000001", 2));
Я получил:
129
129
хотя мои расчеты дают мне -127. Что интересно, что
System.out.println(Integer.parseInt("-10000001", 2));
распечатывает:
-129
Кто-нибудь знает о другом методе Java, который, если вы введете байт (и основание = 2), метод вернет правильно подписанное значение?
int
вместоbyte
? - person Mysticial   schedule 14.03.2013