В математике числа бесконечны. Однако в компьютерах это не так. Для каждого int
-подобного типа существует MAX_VALUE
: int
, short
, long
. Например Integer.MAX_VALUE
. Когда вы пытаетесь увеличить число, превышающее это значение, число становится отрицательным. Таким образом, внутреннее двоичное представление чисел работает.
int i = Integer.MAX_VALUE;
i++; // i becomes negative.