二进制符号数的加减法需要考虑符号位的处理,通常采用二进制补码表示法。以下是具体方法:
一、二进制补码表示法
正数表示:
正数的补码与原码相同,符号位为0。
负数表示:
负数的补码是原码按位取反后加1。
二、二进制加法运算规则
基本规则 - 0+0=0,0+1=1,1+0=1,1+1=10(逢2进1)
- 减法通过加法实现:0-1=1(借1当2),1-0=1,1-1=0
带符号数加法
- 首先判断符号位是否相同:
- 同号相加(0+0或1+1):直接按位相加,符号位保持不变
- 异号相加(0+1或1+0):需要考虑借位
- 示例:
- $1011_{2} + 1101_{2}$(异号)
- 转换为:$1011_{2} + 10010_{2}$(补码形式)
- 结果:$101010_{2}$(符号位为1,表示负数)
三、二进制减法运算规则
基本规则
- 0-0=0,0-1=1(借1当2),1-0=1,1-1=0
- 减法通过加法实现:$A - B = A + (-B)$
带符号数减法
- 将减数取反加1(补码形式):
- 例如:$1011_{2} - 1101_{2}$
- 转换为:$1011_{2} + 0011_{2}$(补码形式)
- 结果:$1110_{2}$(符号位为1,表示负数)
四、注意事项
溢出处理:
加法时需检查是否溢出(符号位与结果符号不一致),减法通过补码可避免直接溢出判断
计算机实现:
计算机通过移位和加法实现乘除法,补码形式简化了加减法运算
五、示例总结
| 运算类型 | 示例 | 结果 | 符号位说明 |
|----------|------------|------------|--------------------------|
| 加法 | $1011_{2} + 1101_{2}$ | $101010_{2}$ | 异号,结果为负数 |
| 减法 | $1011_{2} - 1101_{2}$ | $1110_{2}$ | 异号,结果为负数 |
通过补码表示和逐位运算规则,二进制符号数的加减法可高效实现。