在计算机中,数值都是以二进制的反码还是补码还是原码的形式参加算术运算的.
计算机中,并没有原码和反码。
在计算机,只是使用补码,代表负数。
补码,是一个“代替负数”的正数。
使用了补码之后,在计算机中就没有负数了,同时,也就没有了减法运算。
使用补码的意义,就是:简化计算机的硬件。
------------
比如钟表,时针转一圈,周期是 12 小时。
倒拨 3 小时,可以用正拨 9 小时代替。
9,就称为-3 的补数。
计算方法:9 = 12-3 。
对于分针,倒拨 X 分,就可以用正拨 60-X 代替。
------------
如果,限定了 2 位 10 进制数 (0~99),周期就是 10^2 = 100。
那么,减一,就可以用 +99 代替。
24-1 = 23
24 + 99 = (1) 23
忽略进位,只取两位数,这两种算法,结果就是相同的。
于是,99 就是 -1 的补数。
其它负数的补数,大家可以自己求:
补数 = 负数 + 周期
求出了负数的补数,就可用加法,代替减法了。
------------
计算机中使用二进制,补数,就改称为【补码】。
常用的 8 位 2 进制是:0000 0000~1111 1111。
它们对应十进制:0~255,计数周期是: 2^8 = 256。
那么,-1,就可以用 255 = 1111 1111 代替。
所以:-1 的补码,就是 1111 1111 = 255。
同理:-2 的补码,就是 1111 1110 = 254。
继续:-3 的补码,就是 1111 1101 = 253。
。。。
最后:-128,补码是 1000 0000 = 128。
计算公式:负数的补码=这个负数 + 周期(2^n)。
正数,必须直接运算,不可做任何转换。
也有人说,正数本身就是补码。
------------
补码的应用如: 7-3 = 4。
用八位补码的计算过程如下:
7 =0000 0111
-3的补码=1111 1101
--相加-------------
得: (1) 0000 0100 = 4
舍弃进位,只保留八位,结果,就是正确的。
这就是:使用补码,加法就代替了减法。
所以,在计算机中,有一个加法器,就够用了。
原码和反码,都没有这种功能。
所以,在计算机中,根本就没有它们。
--------------------
从原码反码开始学习补码,就不能理解【补码的意义】。
学习原码反码,就是上了老外的当了。