11、二进制减法与补码系统的奥秘

二进制减法与补码系统的奥秘

在我们能够用继电器、电子管或晶体管实现二进制加法之后,自然而然会想到:减法该如何实现呢?加法和减法虽相互补充,但运算机制却大不相同。加法是从最右边的数位逐列向左边进行,每一列产生的进位会加到下一列;而减法需要借位,这是一种完全不同的机制,过程较为繁琐。

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,通常我们会交换两个数的位置进行减法,然后记住结果是负数。用上述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值