一个数的原码,反码,补码??
在计算机中,并不存在原码和反码。
在计算机中,只用补码表示正负数。
使用补码的意义:可用加法,代替减法运算,从而简化计算机硬件。
------
理解补码,要先从补数开始。
时针转一圈,周期是 12 小时。
倒拨 3 小时,就可以用正拨 9 小时代替。
9 就是-3 的补数。 9 = 12-3。
同理,分针倒拨 X 分,也可以用正拨“60-X”代替。
60 是分针的周期。
三角函数的周期是 2π。
那么,-π/2 和 +3π/2 处的函数值,必定是相同的。
所以,这正负两个角度,也是可以互相替换的。
------
对于两位十进制 0~99,周期就是一百。
这时,减一,你就可以用 +99 代替。
25 - 1 = 24
25 + 99 = (1) 24
结果取两位,舍弃进位。这两种算法,功能就是相同的。
99,就称为-1 的补数。
98,就是-2 的补数。
。。。
其它补数,你自己都会求的。
利用补数,就可以用加法,代替减法运算。
补数怎么求?
负数的补数 = 周期 + 该负数。
正数,不需要求补数。也可以说,本身就是补数。
------
计算机使用二进制,补数,就改称:补码。
八位二进制,共有 256 个数字。周期就是 256。
负数的补码 = 256+该负数。
16 位二进制,共有 2^16 个数字。周期就是 65536。
负数的补码 = 65536+ 该负数。
正数,不需要做变换。或者说,正数本身就是补码。
那么,在八位二进制时:
-1 的补码是:256-1 = 255 = 1111 1111(二进制)。
-2 的补码是:254 = 1111 1110。
-3 的补码是:253 = 1111 1101。
。。。
-128 补码:128 = 1000 0000。
------
补码的应用如: 7-3 = 4。
用补码的计算过程如下:
7 的补码=0000 0111
-3的补码=1111 1101
--相加-------------
得: (1) 0000 0100 = 4 的补码
舍弃进位,只保留八位,结果肯定正确。
------
有了补码,计算机,仅需配置一个加法器即可。
而原码和反码,并没有这种能力。
所以,在计算机中,并没有原码和反码。
原码和反码,根本不存在。
它们都是多少呢? 就不必关心了吧。