求大神帮忙解答~~~
大神们 帮我看下,为什么int类型超出最大值范围,输出最后会变成0, 而不是负数?
------解决方案--------------------65536 * 65536 结果的二进制取32位,就是0了
------解决方案--------------------
++
是的,本来就是0,并不是超出范围了就是0
------解决方案--------------------
2的32次方。取低32位结果是0
------解决方案--------------------
65536 * 65536 = 4294967296,其用二进制表示是:
1
0000 0000 0000 0000 0000 0000 0000 0000有33位,int型取低32位,这32位都是 0 。