二进制借位减法的核心规则是:当某一位被减数小于减数时,需向高位借位(借1相当于加2),并逐位调整计算结果。具体操作如下:
一、借位规则
借位机制
从右往左逐位计算,若当前位被减数小于减数,则向高位借1,借1相当于加2(即当前位加2,高位减1)。
- 例如:计算 `1010 - 101` 时,从最低位开始,第二位 `0` 小于 `1`,需向高位借1,变为 `10 + 0 - 1 = 1`,结果为 `0011`。
连续借位处理
若高位无可用位可借,需向更高位扩展(类似十进制借位),直至成功借位或所有位计算完毕。
二、计算步骤
逐位相减
从最低位开始,按位相减:
- 若被减数大于等于减数,直接相减(如 `1010 - 100 = 0010`)。
- 若被减数小于减数,借位后计算(如 `1010 - 1011` 需借位)。
结果处理
- 借位完成后,若所有位均处理完毕且无剩余负数,则结果为最终答案。
- 若减数大于被减数,需将结果按位取反并加1(如 `1000 - 1001` 结果为 `0111`)。
三、示例说明
以 `1010 - 101` 为例:
1. 从最低位开始:`0 - 1`,借位后变为 `10 - 1 = 1`,结果为 `0011`。
2. 若计算 `1010 - 1011`:
- 第二位 `0` 借位后为 `10`,但第三位仍为 `0`,需继续借位,最终结果为 `0111`(即 `-2` 的二进制补码表示)。
四、注意事项
借位后需注意符号位处理(计算机中无符号数与有符号数差异)。
复杂运算可通过补码法简化(如 `a - b` 转为 `a + (~b + 1)`)。