日期:2014-05-20  浏览次数:20663 次

求大神帮忙解答~~~
大神们 帮我看下,为什么int类型超出最大值范围,输出最后会变成0, 而不是负数?

------解决方案--------------------
65536 * 65536 结果的二进制取32位,就是0了
------解决方案--------------------
引用:
65536 * 65536 结果的二进制取32位,就是0了


++
是的,本来就是0,并不是超出范围了就是0
------解决方案--------------------
引用:
65536 的16 进制 是 3CB0  ,两个乘完  是怎么变 0 的呀


2的32次方。取低32位结果是0


------解决方案--------------------
引用:
65536 的16 进制 是 3CB0  ,两个乘完  是怎么变 0 的呀

65536 * 65536 = 4294967296,其用二进制表示是:
0000 0000 0000 0000 0000 0000 0000 0000有33位,int型取低32位,这32位都是 0 。