读书人

为什么65536*65536输出的是0解决方法

发布时间: 2012-03-27 13:44:24 作者: rapoo

为什么65536*65536输出的是0
cout<<65536*65536<<endl;
结果是0啊???


cout<<65537*65537<<endl;
又是正确的??怎么回事》?


[解决办法]
2^16 = 65536
2^32 = 2^16 * 2^16 = 65536 * 65536
所以第一个输出0是很正常的,就想在二进制运算时,1 + 1 = 10,如果结果只能有1位的话,那么前面的那个1就溢出了,你看到的结果就是1 + 1 = 0啦。

读书人网 >C++

热点推荐