有符号二进制数的表示和操作主要涉及原码、反码、补码三种形式,以及二进制运算规则。以下是关键要点:
一、有符号二进制数的表示方法
最高位为符号位(0表示正数,1表示负数),其余位为数值位。例如:
- 正数:`0000 0001`(十进制1)
- 负数:`1000 0001`(十进制-1)
反码
符号位不变,其余位取反。例如:
- 正数:`0000 0001`(反码仍为`0000 0001`)
- 负数:`1111 1110`(原码`1000 0001`取反后)
补码
反码加1。例如:
- 负数:`1111 1110`(反码)+1 → `1111 1111`(补码,对应十进制-1)
二、二进制运算规则
加法
直接按位相加,符号位参与运算。例如:
- `1000 0001`(-1)+ `0000 0010`(2)→ `0000 0011`(1)
减法
转换为加法:`A - B = A + (-B)`。例如:
- `1000 0001`(-1)- `0000 0010`(2)→ `1000 0001` + `1111 1101`(-2的补码)→ `0000 0000`(溢出)
溢出判断
8位有符号数溢出时,结果需根据补码规则处理。例如:
- `0111 1111`(127)+ `0000 0001`(1)→ `1 0000 0000`(-128,溢出)
三、常见操作示例
取反加1: `~2`(二进制`0000 0010`)→ `1111 1101`(反码)→ `1000 0010`(补码,-3)
补码转换:`1111 1111`(补码)→ `0000 0000`(十进制0)
四、注意事项
计算机内部统一使用补码进行运算,避免混淆原码和反码
8位有符号数范围为-128到127