$$
\frac { - 1 7 6 } { 3 3 7 3 }
$$
将这些数字转化为二进制数,问题变为:
$$
\frac { - 1 0 1 1 0 0 0 0 } { ? ? ? ? ? ? 2 9 2 9 2 }
$$
第一步,用11111111(即255)减去减数:
$$
\frac { - 1 0 1 1 0 0 0 0 } { 0 1 0 0 1 1 1 1 }
$$
当计算十进制数减法的时候,减数是从一串9中减去的,结果称为9的补数。在二进制数减法中,减数是从一串1中减去的,结果称为1的补数。但是请注意,我们在求对1的补数时并不需要用到减法。在求对1的补数时,只需将原来的二进制数中的1变为0,将0变为1即可。因此对1求补数有时也会称为相反数(negation)或反码(inverse)。这里你可能会想起第11章中的反向器,它的作用就是将0变为1,将1变为0。
第二步,将减数对1的补数与被减数相加:
$$
\frac { 1 1 1 1 1 1 0 1 } { 1 0 1 0 0 1 1 1 1 }
$$
第三步,将上式所得结果加1:
$$
\frac { 1 0 1 0 0 \div 1 0 0 } { 1 0 1 0 0 \div 1 0 1 }
$$
第四步,减去100000000(即256):
$$
\frac { 1 0 1 0 0 1 1 0 1 } { 1 0 0 0 0 0 0 0 0 }
$$
结果就等于十进制数的77。
13 如何实现减法
151