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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小峰Raul 中级黑马   /  2015-5-22 21:50  /  1011 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天学习了一些关于原码 反码以及补码的问题,由原码求反码 补码没啥问题
但是负数的补码求反码我还是有一点不明白 希望大神解答

点评

正数的源码反码都一样  发表于 2015-5-22 23:07

评分

参与人数 1黑马币 +12 收起 理由
陈明佳 + 12 很给力!

查看全部评分

16 个回复

倒序浏览
负数补码取反码 -1就行了啊
回复 使用道具 举报
本帖最后由 BlueSun 于 2015-5-22 22:07 编辑

取反+1
具体来说就是先写出反码(把其原码除符号位外的各位先求其反),再在最后位+1例如
                原码           反码              补码
       47     00101111     00101111   00101111(正数补码和原码、反码相同,)
     -47    10101111     11010000   11010001(负数补码是在反码上加1)
回复 使用道具 举报
负数的补码是把其原码除符号位外的各位先求其反码,然后在最低位加1
回复 使用道具 举报
tanzhixue 发表于 2015-5-22 21:57
负数补码取反码 -1就行了啊

嗯嗯 谢谢
回复 使用道具 举报
BlueSun 发表于 2015-5-22 22:01
取反+1
具体来说就是先写出反码(把其原码除符号位外的各位先求其反),再在最后位+1例如
                原 ...

谢谢大神
回复 使用道具 举报
BlueSun 发表于 2015-5-22 22:03
负数的补码是把其原码除符号位外的各位先求其反码,然后在最低位加1

嗯嗯 谢谢了
回复 使用道具 举报
niuapp 中级黑马 2015-5-22 22:20:49
8#
负数的 原码转补码,补码转原码,都是      符号位不变,其它位 取反加一
回复 使用道具 举报
膜拜大神!你们太厉害了!
回复 使用道具 举报
BlueSun 发表于 2015-5-22 22:03
负数的补码是把其原码除符号位外的各位先求其反码,然后在最低位加1

嗯嗯 谢谢了
回复 使用道具 举报
除最高位不变外,其余数值位都0变1  1变0,得到反码 然后反码加1  就是补码
回复 使用道具 举报
膜拜大神
回复 使用道具 举报
反码-1就是了
回复 使用道具 举报
原码:有符号数据的最基本表示形式。最高位是符号位,其他位是数值位。  0表示正数,1表示负数。
反码:
        正数的反码和原码相同。
        负数的反码和原码不同:
                 规则是:符号位不变,数值位取反,0变1,1变0.
补码:
        正数的补码和原码相同。
        负数的补码和原码不同:
                规则是:反码+1
总结:
        正数的原码,反码,补码都一样。
        负数的不一样。

        注意:
                Java中只有加法,减去一个数字,等于加上这个数字的负数形式。
                记忆:计算中存数的数据都是以补码形式存的。


负数的补码求反码就就是减1,如-78的补码求反码:
  10110010
-             1
——————
  10110001
因为最右边的0减1不够,像右边借一个,就是这样。

回复 使用道具 举报
反码求补码 用反码+1就可以  补码求反码的话 加上一个-1就好了
回复 使用道具 举报
学习一下 谢谢各位分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马