黑马程序员技术交流社区
标题:
问一个浅显的问题,关于二进制的正负数。
[打印本页]
作者:
LICONION
时间:
2015-8-24 22:44
标题:
问一个浅显的问题,关于二进制的正负数。
本帖最后由 LICONION 于 2015-8-24 22:49 编辑
一个整数在二进制中占4个字节也就是32位,负数的表现形式为整数的取反再+1.
问题:二进制1111-1111 1111-1111 1111-1111 1111-1111是正还是负?
如果是正,取反再+1结果岂不是变成了 - 1?是不是违背了负数首位都是1的说法?
如果不是正整数,请说出理由,我觉得这样的数字在二进制中并不是非法啊,求指教。
作者:
Marx_D
时间:
2015-8-25 00:15
说明:整数的原码、反码和补码都是一样的。
负数中
反码:原码除了符号位,各位取反;、
补码:反码+1;
你的例子:
原码:1111-1111 1111-1111 1111-1111 1111-1111
反码:1000-0000 0000- 0000 0000-0000 0000-0000
补码:1000-0000 0000-0000 0000-0000 0000-0001
在java运算中都是以补码的形式进行的。
可以找几个例子看一一下啊。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2