二进制减法与补码系统的奥秘
在我们能够用继电器、电子管或晶体管实现二进制加法之后,自然而然会想到:减法该如何实现呢?加法和减法虽相互补充,但运算机制却大不相同。加法是从最右边的数位逐列向左边进行,每一列产生的进位会加到下一列;而减法需要借位,这是一种完全不同的机制,过程较为繁琐。
1. 十进制减法的巧妙处理
以一个典型的需要借位的减法问题为例:253 - 176。当看到最右边一列 6 大于 3 时,我们就知道需要借位,而且可能不止借一次。为了避免借位,我们可以采用一种特殊的方法。
我们知道减法等同于加上一个负数,所以可以将 253 - 176 改写为 -176 + 253。接着,我们引入两个数(一个正数和一个负数),使计算变为 1000 - 176 + 253 - 1000,因为加上 1000 再减去 1000 不影响结果。又因为 1000 等于 999 + 1,所以可以进一步改写为 999 - 176 + 253 + 1 - 1000。
具体计算步骤如下:
1. 计算 999 - 176,得到 823。这里的 823 就是 176 的九的补数,计算九的补数无需借位。
2. 计算 823 + 253,得到 1076。
3. 计算 1076 + 1,得到 1077。
4. 计算 1077 - 1000,得到 77,与正常借位计算的结果相同。
当使用九的补数简化减法时,需要注意处理的数字位数。如果数字是四位数,就需要用 9999 来计算九的补数,最后减去 10000。
如果是用较小的数减去较大的数,例如 176 - 253,通常我们会交换两个数的位置进行减法,然后记住结果是负数。用上述
超级会员免费看
订阅专栏 解锁全文
1085

被折叠的 条评论
为什么被折叠?



