二进制减法可通过以下两种方法实现,具体选择取决于应用场景:
一、逐位借位法(传统减法)
基本规则
从最低位开始逐位相减,若被减数某位小于减数对应位,则向高位借1(相当于2),并将当前位变为10减去减数。
- 例如:`1010 - 0101`
- 第0位:0-1 → 借1 → 10-1=1
- 第1位:0-0=0
- 第2位:1-1=0
- 第3位:0-0=0
- 结果为`0101`(即5)。
处理负数
若减数大于被减数,需将结果按位取反后加1(补码运算),例如`1010 - 1111` → `0001`(即-5)。
二、补码加法法(计算机常用)
转换步骤
- 将减数取反(0变1,1变0)。
- 在取反结果基础上加1,得到减数的补码。
- 然后将被减数与减数的补码相加,结果即为差值。
示例
计算`1010 - 1111`:
- 减数`1111`的补码为`0001`(1+1+1+1=10,进位后为`0001`)。
- 相加:`1010 + 0001 = 1011`,结果为`1011`,即-5(符号位为1表示负数)。
总结
逐位借位法适用于简单场景,但易出错且效率较低。
补码加法法是计算机底层实现的核心方法,支持负数运算且效率更高。