计算机中,并没有原码和反码。
为什么用补码?
就是为了:简化硬件,节约成本。
因为,负数,是可以用一个正数(补码)代替的。
如: 24 - 1 = 23
24 + 99 = (一百) 23
忽略进位,用 +99 就可以代替-1。
+99,就是-1 的补数。 计算机用二进制,就称为:补码。
用补码(正数)代替了负数,那么,计算机中,就没有负数了。
那么,在计算机中,就只有加法运算了。
所以,在计算机中,只需设置一个加法器,便可加减通吃了。
-------------
定点整数的补码(mod=2^n)定义式如下:
[X]补 = X ( 0 ≤ X < 2^(n-1) )
[X]补 = 2^n - | X | (-2^(n-1) ≤ X < 0 )
当 n = 8 时,[-128]补 = 256-128 = 1000 0000B。
-------------
定点小数的补码(mod=2)定义式如下:
[X]补 = X ( 0 ≤ X < 1 )
[X]补 = 2 + X (-1 ≤ X < 0 )
因此,-1.0 的补码为 2 +(-1) = 1.0000。
-------------