利用二补码进行二进制减法
二进制减法可用逐位借位经典法,但更简单方法是使用二补码算术。将减数转为负二进制形式再相加,运算化为单次二进制加法。
二补码让正负数共享相同位宽,利用最高位“负权位”。正数加负数时,负数最高位作为负权重,实现减法效果。
示例1:7₁₀ − 5₁₀
用三数据位加一负权位的二补码表示:
正七 = 0111₂ 负五 = 1011₂
相加:
. 1111 ← 进位 . 0111 . + 1011 . ------ . 10010 . | . 丢弃溢出位 . 结果 = 0010₂
溢出位丢弃因最左位代表负权(−8)。最终4位模式 0010₂ 等于十进制2,验证 7−5=2。
示例2:18₁₀ + (−25)₁₀
先定位宽。最大幅度25需五位,加一负权位共六位。
表示 +25 及其二补码:
+25₁₀ = 011001₂(六位) 11001₂ 的一补码 = 100110₂ 加1 → 二补码 = 100111₂ −25₁₀ = 100111₂
正18写作:
18₁₀ = 010010₂
相加:
. 11 ← 进位 . 100111 . + 010010 . ------ . 111001
无溢出,结果 111001₂ 保留。最高位1表示二补码下负值。转回十进制:
(1×−32) + (1×16) + (1×8) + (1×1) = −7
故 18 + (−25) = −7,符合预期。
相关练习:
- 二进制数学练习题
工业技术