Почему негатив Integer.MIN_VALUE дает одинаковое значение? [Дубликат]

На этот вопрос уже есть ответ:

Рассмотрим приведенный ниже код Java.

Integer value = Integer.MIN_VALUE;
System.out.println(value);

value = -value;
System.out.println(value);

Выходные данные

-2147483648
-2147483648

Как отрицательное значение значения Integer.MIN_VALUE приводит к тому же значению?

Однако результат не может быть 2147483648, потому что максимальное значение Integer в Java - 2147483647.

Но хотите знать, почему -2147483648? Какие побитовые операции выполняются внутри?

8
задан Dukeling 15 May 2017 в 20:10
поделиться