二进制减法运算可通过以下两种方法实现,具体选择取决于数值大小:
一、逐位借位法(适用于被减数≥减数)
对齐位数 :将两个二进制数从最低位开始对齐。逐位相减
- 0-0=0,1-0=1,1-1=0
- 若被减数某位为0,需向高位借1(相当于2),此时该位变为10,再减减数对应位。
处理借位:
从高位向低位逐位计算,若出现连续借位需继续向前传递。
示例
:计算 `1011001 - 0000111`
从右向左逐位相减,最终结果为 `1010010`。
二、补码加法法(适用于被减数<减数)
转换减数为补码
- 取减数各位取反(0变1,1变0),最低位加1。
- 例如:减数 `1111` 转换为补码 `0001`(即-1)。
执行加法运算
- 将被减数与减数补码相加,结果即为差值。
处理符号位
- 若结果最高位为1,表示结果为负数,需按位取反后加1得到最终值。
减数 `1111` 转换为补码 `0001`,相加后结果为 `10101`,即 `-5`。
总结
被减数≥减数:直接用逐位借位法计算。
被减数<减数:通过补码加法法计算,结果为负数时需处理符号位。