为什么数在内存中要以补码表示[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
让加减可以统一处理。
举例: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
相关文章推荐
- 你知道为什么计算机中的数据使用补码来表示和运算吗?
- 负数为什么用补码表示
- 为什么计算机中使用补码来表示与运算
- 为什么要用补码表示
- 你知道为什么计算机中的数据使用补码来表示和运算吗?
- 补码10000000为什么可以表示-128?
- 负数在计算机中如何表示,计算机中负数为什么用补码表示?
- 数据在内存中始终是以二进制形式存放的,数值是以补码表示的
- (转)为什么要用补码表示
- 负数在计算机中如何表示,计算机中负数为什么用补码表示?
- 为什么要用补码表示
- 为什么补码可以表示负数
- 为什么计算机中使用补码来表示与运算
- -1为什么要用补码表示
- 为什么补码可以表示负数?
- 计算中为什么要用补码表示
- 8位二进制数能表示的最小整数为什么是-128,10000000为什么是-128的补码。
- (转)为什么要用补码表示
- 计算机中为什么要用补码表示
- 机器码 真数 原码 反码 补码 float的内存表示