黑马程序员技术交流社区

标题: 问一个浅显的问题,关于二进制的正负数。 [打印本页]

作者: 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