$0$ 相关
- $0$ 有唯一表示: 只有 补码 & 移码
- $\Rightarrow$ “+0” “-0” 排除移码补码
- $[0]_{补}=00000000$
- $[0]_{移}=10000000$
范围
| 编码 | 下界 | 上界 | 数据数 |
|---|---|---|---|
| 原码 | $-2^{k-1}+1$ | $2^{k-1}-1$ | $2^{k}-1$ ($\because$ 重复 $\pm 0$) |
| 补码 | $-2^{k-1}$ | $2^{k-1}-1$ | $2^{k}$ |
| 移码 | $-2^{k-1}$ | $2^{k-1}-1$ | $2^{k}$ |
边界数表示
以 $k=8$ 位编码为例
- 补码
- Max = $[2^{k-1}-1]{补}=[127]{补}=0111_1111$
- Min = $[-2^{k-1}]{补}=[-128]{补}=1000_0000$
- 移码
- Max = $[2^{k-1}-1]{移}=[127]{移}=1111_1111$
- Min = $[-2^{k-1}]{移}=[-128]{移}=0000_0000$
类型转换
C-style 类型转换:
-
不改变数据 ❎
-
只改变解释 ✅
-
长改短 $\Rightarrow$ 截断
-
短改长 $\Rightarrow$ 扩展
- 有符号 $\Rightarrow$ 算术扩展
- 无符号 $\Rightarrow$ $0$ 扩展
算术等价
以 $k=8$ 位编码为例
- $\sim A=1111_1111-A$
- $[1.A]_{补}=1.(\sim A + 1)$