![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java问答
free丿love
这个作者很懒,什么都没留下…
展开
-
Java中整数溢出的问题:int i=1000000;i*i为何等于-727379968,Java是如何处理溢出的?
原提问地址:http://bbs.csdn.net/topics/40216116 问题: 读Java语言说明书到34页的时候碰到了一个整数相乘溢出的问题,百思不得其解,诚请行家指点。int i=1000000;i*i为何等于-727379968?书中说乘法是安装32位精度计算的。-727379968是计算结果1000000000000的低32位的十进制表示,计算结果对int类型来说太大了。怕英原创 2016-01-13 20:04:04 · 2197 阅读 · 0 评论 -
java 两数相减
比如 -3-4=-7-3用二进制表示为: 3的二进制取反,得到反码,反码+1得到补码。 即 0000 0011–>取反–>1111 1100–>+1–>1111 1101 -4表示为 0000 0100->1111 1011->1111 1100. 即 1111 1101 +111 11001111 1001 在根据补码得出结果,即 补码-1=反码 反码取反得到原码,即 1111原创 2016-01-13 21:10:41 · 2694 阅读 · 0 评论