鱼C论坛

 找回密码
 立即注册
查看: 158621|回复: 8431

[扩展阅读] 使用补码的好处

    [复制链接]
发表于 2015-12-15 03:39:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
使用补码的好处


布布君:使用补码的好处是什么?

小甲鱼:你应该先问补码是什么……


布布君:补码是什么?

小甲鱼:一个数在计算机中是以二进制的形式存放的,补码的发明是为了表示带符号数(整型)。


布布君:我知道二进制左边的第一位叫“符号位”,用“0”表示正数,用“1”表示负数,也就是说十进制数 3 的二进制表示方式是 00000011(1个字节),而 -3 则可以表示为 10000011,对吗?

小甲鱼:对一半,不对一半!


布布君:(⊙o⊙)哦?

小甲鱼:如果 3 表示为 00000011,-3 表示为 10000011,那请问 3 - 3 的值用二进制数应该如何表示?


布布君:简单!3 - 3 == 3 + (-3) == 0。二进制就是 00000011 + 10000011 == 10000110,咦?怎么不是等于 00000000?

小甲鱼:对嘛!补码的发明就是为了解决这个问题!


布布君:所以补码就是先按位取反,然后 +1?

小甲鱼:对的,正数的补码是其本身的二进制形式;负数的补码需要先将其绝对值按位取反,再 + 1。

              比如 -3,就是先将 10000011 按位取反(除了符号位),得到 11111100,再 +1 得到 11111101。

              这样就可以解决 3 + (-3) == 0 的问题了。


布布君:00000011 + 11111101 == 100000000,也不等于 00000000 呀?

小甲鱼:你看,00000011 + 11111101 == 100000000,这里的结果是 9 位,对于一个字节单元来说,这左边的 1 是“溢出”的了,会被自动舍弃,因此结果就变成了 00000000。


布布君:哇塞,明白了,小甲鱼老师o(≧v≦)o~~好棒!

小甲鱼:噢,是先人们厉害!


想知道布布君是谁吗?

回复:朕想知道,给你看布布君的日常……

游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 21荣誉 +96 鱼币 +95 贡献 +56 收起 理由
fuaowei + 5 + 5 + 3
高山 + 2 + 3 + 3 鱼C有你更精彩^_^
zero_GK397 + 5 + 5 + 3
铭凡 + 5 + 5 + 3 原来布布君是我们最好的好朋友
沐曦 + 3 + 1 + 3 好可爱呀!
风归de副歌 + 1 + 1 好耶
乙烯依旧 + 5 + 5 + 3 解释的很好
q1243231608 + 5 + 5 + 3 感谢楼主无私奉献!
悬崖网络 + 5 + 5 + 3 我好像还不如布布君
1246025109 + 3 布布可爱

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-15 16:12:08 | 显示全部楼层
朕想知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 3 反对 0

使用道具 举报

发表于 2015-12-16 09:26:06 | 显示全部楼层
本帖最后由 gt3223 于 2015-12-16 09:27 编辑

支持咯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2015-12-16 11:21:08 From FishC Mobile | 显示全部楼层
朕也想知道……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-16 11:30:39 | 显示全部楼层
真想知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-12-16 11:45:36 | 显示全部楼层
这个真的好吗? 好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-12-16 12:28:56 | 显示全部楼层
:call:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-16 13:34:36 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-16 13:36:33 | 显示全部楼层
想知道:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-16 14:21:10 | 显示全部楼层
布布君不是我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-16 15:18:05 | 显示全部楼层
朕想知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-16 20:29:40 | 显示全部楼层
朕想知道:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-16 21:09:00 | 显示全部楼层
想知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-12-17 08:41:58 | 显示全部楼层
清早过来看看!!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-17 10:14:47 | 显示全部楼层
朕想知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-17 10:26:48 | 显示全部楼层
郑想知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-17 11:03:18 | 显示全部楼层
很形象啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-17 12:28:14 | 显示全部楼层
原来补码是用来解决加法问题的呀~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2015-12-17 14:57:28 | 显示全部楼层
有木有二进制手算的课程。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-17 15:45:21 | 显示全部楼层
朕不想知道。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-23 22:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表