По умной и сложной причине, которую я действительно не хочу объяснять (потому что она включает создание таймера чрезвычайно уродливым и хакерским способом), я написал код на C # вроде этого:
int i = 0;
while (i >= 0) i++; //Should increment forever
Console.Write(i);
Я ожидал, что программа зависнет вечно или выйдет из строя или что-то в этом роде, но, к моему удивлению, после ожидания примерно 20 секунд я получил следующее сообщение:
-2147483648
Ну, программирование научило меня многому, но я все еще не могу понять, почему постоянное увеличение числа приводит к тому, что оно в конечном итоге становится отрицательным ... что здесь происходит?