Действительно простой вопрос здесь. У меня действительно простая программа для добавления двух чисел и распечатка суммы этих чисел (см. Ниже). При запуске программы он работает как ожидалось и распечатывает 40 000 для 20 000 + 20 000. Но когда я меняю int a, b и суммирую до short a, b и sum, я получаю -25 536 в качестве ответа. Любой, кто может объяснить, почему это происходит? У меня есть идея, но мне хотелось бы услышать ее от того, кто ее знает. Спасибо за прочтение.При добавлении двух коротких номеров
int a, b, sum;
a = 20000; b = 20000; sum = a+b;
printf("%d + %d = %d\n", a, b, sum);
Максимальное значение 'short' для вашей реализации -' 32767'. – Barmar
вы можете попробовать 'unsigned short', если хотите 65535 max? – corn3lius