您的位置:首页 > 其它

为什么数在内存中要以补码表示[ZZ]

2006-05-07 16:17 239 查看
保证0的唯一性。
让加减可以统一处理。
举例:10在内存的中表示(以8位二进制为例)
补码:00001010 就是这个数转成二进制后的本身。
-10在内存中的表示:
补码:11110110 (就是把10的二进制码取反加一)
同理+0在内存中:00000000
-0在内存中=11111111+1=100000000取八位00000000
也就是说+0和-0有同样的表示。
做加减法也就可以一致了:
3+4=00000011+00000100=00000111=7
3-4=3+(-4)=00000011+11111100=11111111
11111111取反加一等于1,所以11111111就是-1
这么说可能还不很清楚,你还是去看看相关的理论书籍吧,可以看《计算机组成原理》。大二应该要学的。
推荐你阅读Charel Petzold的《编码的奥秘》一书,写深入浅出,讲述了很多有关计算机的最基本理论和数字电路的一些基本知识,我觉得给大一的学生看最合适了。
00000000减1应该等于11111111
00000000-1
= 00000000 + (-1)
= 00000000 + 11111111
= 11111111
为什么-1的补码是11111111
因为补码就是“取反加一”。1是00000001,取反11111110,加一11111111
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: