Integer.valueOf не работает для двоичного представления -1 в Java - PullRequest
0 голосов
/ 18 марта 2020

Следующий код пытается вывести -1 из двоичного представления дополнения 2, но выдает NumberFormatException.

System.out.println(Integer.parseInt(Integer.toBinaryString(-1), 2));  //Raises Exception

System.out.println(Integer.valueOf("11111111111111111111111111111111", 2));  //Raises Exception

Infact Integer.valueOf, похоже, не работает для двоичного числа со знаком со знаком минус представление. Почему ошибка вывода кода?

1 Ответ

3 голосов
/ 18 марта 2020

valueOf не знает о дополнении 2, поэтому думает, что вы просите скрыть значение без знака в базе 2, которое слишком велико, чтобы поместиться в int. (Попробуйте удалить один из 1.)

...