Значение типа int занимает 32 бита (4 байта). Всего возможно 232 различных значений, из них половина положительных и половина отрицательных, причём отрицательными считаются числа, у которых старший бит равен единице:
00000000 00000000 00000000 000000002 = 010
00000000 00000000 00000000 000000012 = 110
. . .
01111111 11111111 11111111 111111112 = 214748364710 = 231–1
10000000 00000000 00000000 000000002 = –214748364810 = –231
. . .
11111111 11111111 11111111 111111112 = –110
Поэтому во время выполнения цикла после положительного числа 2147483647 получается отрицательное число –2147483648, которое не удовлетворяет условию продолжения цикла и он заканчивает свою работу.
Войдите чтобы поставить Нравится
Войдите чтобы прокомментировать