A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 LICONION 于 2015-8-24 22:49 编辑

一个整数在二进制中占4个字节也就是32位,负数的表现形式为整数的取反再+1.
问题:二进制1111-1111 1111-1111 1111-1111 1111-1111是正还是负?

           如果是正,取反再+1结果岂不是变成了 - 1?是不是违背了负数首位都是1的说法?
           如果不是正整数,请说出理由,我觉得这样的数字在二进制中并不是非法啊,求指教。

1 个回复

倒序浏览
说明:整数的原码、反码和补码都是一样的。
负数中
反码:原码除了符号位,各位取反;、
补码:反码+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运算中都是以补码的形式进行的。
可以找几个例子看一一下啊。


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马