在计算机系统中,数值,一律用补码表示和存储。
计算机中,并没有原码和反码。
那么,什么是补码?补码和数值,是怎么换算的?
这应该从“补数”说起。
如果限定了参加计算的“位数”,就会发生不同寻常的事。
一般的计算,是用十进制来进行的。
如果,限定,只使用两位数:00~99。
那么,-1 和 +99,功能就是相同的:
25 - 1 = 24
25 + 99 = (一百) 24
在这里,99,就是-1 的“补数”。
一百,就是 10^2,则称为:计数周期。
补数的计算公式: 99 + |-1 | = 周期。
------------------------
计算机使用二进制,补数,就改称为:补码。
八位机,就是用 8 位二进制,来参加计算。
计数范围:0000 0000~1111 1111(十进制 255)。
计数周期就是:2^8 = 256。
那么:
-1 的补码,就是 256-1 = 255 = 1111 1111。
-2 的补码,就是 256-2 = 254 = 1111 1110。
。。。
求补码的通用公式,就是:周期 + 负数。
补码,就是补码。
补码和原码反码,并没有任何关系。
求补码,并不需要借助于原码和反码。
------------------------
在计算机中,利用补码,就能:用加法代替减法运算。
因此,就可以简化计算机的硬件。
例如,用补码计算: 3 + (-1) = 2。
0000 0011 (= 3)
+ 1111 1111 (用 255 当做-1)
---------------------
(1) 0000 0010 (= 2)
舍弃进位,只取八位的结果,这算法,就完全正确。