Short类型变量的值

时间:2014-12-26 13:17:52

标签: c++ output short

代码是这样的:

 short x=30;
 short y=32760,z;
 z= x+y;
 int w= z*z;
 cout<< " w = "<< w << " z= " << z;

,输出是这样的:  w = 1072300516 z = -32746

为什么会这样?

2 个答案:

答案 0 :(得分:1)

short可容纳的最大金额为32767.当您添加32760和30时,您将获得32790,这大于short可以容纳的金额。所以发生溢出并且你的数字“包裹”了。这就是你得到z的负数的原因。

–32768 --- 0 --- 32767

如果您以这种方式考虑short,您就会理解它。当数字太大时,它会再次走向负面。

答案 1 :(得分:0)

 z= x+y;      <<<<< 32790 is beyond the grasp of short

当你越过短线所能达到的最大值时,这会导致溢出。