补码减法运算
负数的加法要利用补码化为加法来做,减法运算当然也要设法化为加法来做。其所以使用这种方法而不使用直接减法,是因为它可以和常规的加法运算使用同一加法器电路,从而简化了计算机的设计。
补码减法的公式是:
| [x-y]补=[x]补-[y]补=[x]补+[-y]补 | ( mod 2 ) | ( 2.2.2 ) |
这里只要证明 – [y]补 = [ - y]补,上式即得证。现证明如下:
∵ [x]补 + [y]补 = [x + y]补 (mod 2)
∴ [y]补 = [x + y]补 – [x]补 (2.2.3)
∵ [x - y]补 = [x + ( - y)]补 = [x]补 + [ - y]补
∴ [ - y]补 = [x - y]补 – [x]补 (2.2.4)
将式(2.2.3)与(2.2.4)式相加,得
[ - y]补 + [y]补 = [x + y]补 + [x - y]补 – [x]补 – [x]补
= [x + y + x - y]补 – [x]补 – [x]补
= [x + x]补 – [x]补 – [x]补
= 0
| 所以 | [-y]补=-[y]补 | (2.2.5) |
不难发现,只要能通过[y]补求得[ - y]补,就可以将补码减法运算化为补码加法运算。
已知[y]补求[ - y]补的法则是:对 [y]补各位(包括符号位)取反且末位加1,就可以得到[ - y]补。
| [-y]补=﹁[y]补+2-n | (2.2.6) |
【例2.2.4】 x = 0.1100,y = 0.0110,求 [x]补 – [y]补 = ?
[解:]
[x]补=0.1100 [y]补=0.0110, [-y]补=1.1010 [x]补 0.1100 +[-y]补 1.1010 [x-y]补 10.0110 ↑丢掉 所以 x-y=+0.0111
【例2.2.5】 x = - 0.1100,y = - 0.0110,求 [x]补 – [y]补 = ?
[解:]
| [x]补=1.0100 | ||
| [y]补=1.1010, [-y]补=0.0110 | ||
| [x]补 1.0100 | ||
| +[-y]补 0.0110 | ||
| [x-y]补 1.1010 | ||
| 所以 | x-y=- 0.0110 |
转载请标明出处:萝卜根
原文地址请标明:原文地址