【发布时间】:2017-01-09 22:12:26
【问题描述】:
这里真的很简单的问题。我有一个非常简单的程序,用于将两个数字相加并打印出这些数字的总和(如下)。运行程序时,它按预期工作,并为 20 000 + 20 000 打印出 40 000。但是当我将 int a、b 和 sum 更改为 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。 -
如果你想要最大 65535,你可以试试
unsigned short?