求大神帮忙解答~~~

新生水军Vs糖 2013-12-07 08:08:29
大神们 帮我看下,为什么int类型超出最大值范围,输出最后会变成0, 而不是负数?
...全文
134 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nmyangym 2013-12-07
  • 打赏
  • 举报
回复
引用 4 楼 tasty007 的回复:
65536 的16 进制 是 3CB0 ,两个乘完 是怎么变 0 的呀
65536 * 65536 = 4294967296,其用二进制表示是: 1 0000 0000 0000 0000 0000 0000 0000 0000有33位,int型取低32位,这32位都是 0 。
大未 2013-12-07
  • 打赏
  • 举报
回复
引用 4 楼 tasty007 的回复:
65536 的16 进制 是 3CB0 ,两个乘完 是怎么变 0 的呀
2的32次方。取低32位结果是0
新生水军Vs糖 2013-12-07
  • 打赏
  • 举报
回复
65536 的16 进制 是 3CB0 ,两个乘完 是怎么变 0 的呀
新生水军Vs糖 2013-12-07
  • 打赏
  • 举报
回复
亲,能帮我解释的具体点吗??小弟概念不是很清晰啊
rumlee 2013-12-07
  • 打赏
  • 举报
回复
引用 1 楼 oDamon1 的回复:
65536 * 65536 结果的二进制取32位,就是0了
++ 是的,本来就是0,并不是超出范围了就是0
大未 2013-12-07
  • 打赏
  • 举报
回复
65536 * 65536 结果的二进制取32位,就是0了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧