3 Arithmetic
补充
除法器
IEEE浮点数
浮点数定义
符号位S
指数 exp
, 尾数fra
长度分别为
bias一般是 (相当于excess 码)
exp() | fra | 表示的数 |
---|---|---|
0 | 0 | 0 |
0 | ≠0 | 非规格化数 |
0 | ±inf | |
≠0 | NaN |
范围 规律:上下界的指数的绝对值差1
精度
S | E | F | 范围 | 精度 | |
---|---|---|---|---|---|
单精度(32) | 1 | 8 | 23 | ||
双精度(64) | 1 | 11 | 52 | ||
半精度(16) | 1 | 5 | 10 |
其他的浮点数: 注意尾数有没有hidden 1 指数是补码还是有bias
加法
- 把小指数对齐到大指数,尾数移位 (因为后面的位不重要)
- 尾数相加
- 规格化
- 舍入
乘法
- 指数相加,然后-bias
- 尾数相乘
- 规格化
舍入规则
guard
/round
/sticky
- 一般的浮点数后面还会有 2 bits,分别称为 guard 和 round
- 只要 round 右边出现过非零位,就将 sticky 置 1,这一点可以用在加法的右移中,可以记住是否有 1 被移出,从而能够实现 "round to nearest even"。