Я могу прочитать, что диапазон int (подписан) от [−32767, +32767]
, но я могу сказать, например, < /p>
int a=70000;
int b=71000;
int c=a+b;
printf("%i", c);
return 0;
< /code>
и выход составляет 141000 (правильно). Разве отладчик не должен сказать мне
«Эта операция не в диапазоне» или что -то подобное? Если сумма превышает это число, результат является отрицательным, что ожидается, но если это вычитание, например: 2147483649-2147483647 = 2 Результат все еще хорош. Я имею в виду, почему значение 2147483649 правильно удерживается для этой цели вычитания (или, по крайней мере, мне кажется)?
Подробнее здесь: https://stackoverflow.com/questions/348 ... -int-32767