编程计算1*2*3+4*5*6+....+99*100*101的值,为什么用tc3.0编写出来的结果是个负数?

日期:2021-06-05 06:06:13 人气:1

编程计算1*2*3+4*5*6+....+99*100*101的值,为什么用tc3.0编写出来的结果是个负数?

答案是8162550。
在tc3.0下,int是2个字节的,也就是说int的范围是-65536~65535。这样的话这个答案存在以int定义的变量中就会导致溢出,所以输出就是负的了。
tc3.0下可以用long int来表示4个字节的整型,能表示的数的范围是-2147483648~2147483647,这样就不会溢出了。
现代C/C++编译器基本上都是32位的了,int也由2个字节升到4个字节,所以如果你在vc或gcc上编译这段代码,结果就不会有任何问题。
    A+
热门评论