1. 加法和减法
必须确保两个操作数有相同的指数值
$$
X+Y=(X_S\times B^{X_E-Y_E}+Y_S)\times B^{Y_E} \\ X-Y=(X_S\times B^{X_E-Y_E}-Y_S)\times B^{Y_E} \\ X_E \leq Y_E
$$
<aside>
📖 小变大,保护高位
</aside>
<aside>
📖 步骤过程
- 检查0
- 对齐有效值
- 加或减有效值
- 规格化结果
</aside>
<aside>
📖 Exponent
- Overflow
- A positive exponent exceeds the maximum possible exponent value
- Designated as $+\infty$ or $-\infty$
- Underflow
- a negative exponent is less than the minumum possible exponent value
- Reported as $0$
</aside>
<aside>
📖 Significand
- Overflow
- The addition of two signicands of the same sign may result in a carry of the most significant bit
- Fixed by realignment
- Underflow
- In the process of aligning significands, digits may flow off the right end of the significand
- Some form of rounding is required
</aside>
<aside>
📖 原码加法 Sign Magnitude Addition
如果两个操作数有相同的符号,加法;反之减法
加法:直接相加
减法:加第二个操作数的补数
- 如果最高位有进位,正确(符号与被减数相同)
- 否则,计算补码(符号与被减数相反)
</aside>
$\text{e.g.}$
$$
\begin{aligned} 0.8125-0.625&=0.8125+(1-0.615)-1\\&=0.8125+\underbrace{0.0375}_{\text{two's comp}}-1\\&=0.1875 \end{aligned}
$$
$$
\begin{aligned}0.625-0.8125&=0.625+(1-0.8125)-1\\&=0.625+0.1875-1 \\&=-(1-0.8125)\\&=\underbrace{-0.1875}_{\text{two's comp}}\end{aligned}
$$
2. 乘法
- 无论哪个操作数为0,乘积即为0
- 从阶值的和中减去一个偏移量
- 有效值相乘
- 结果的规格化和舍入处理
3. 除法
- 如果除数为0,则报告出错,或将结果设为无限大
- 如果被除数是0,答案为0
- 被除数指数减去除数指数,加上偏移量
- 有效值相除
- 结果的规格化和舍入处理
4. 精度考虑
保护位
- 寄存器的长度几乎总是大于有效值位长与一个隐含位之和
- 寄存器包含的这些附加位,称为保护位
- 保护位用0填充,用于扩充有效值的右端
舍入
- 对有效值操作的结果通常保存在更长的寄存器中
- 当结果转换回浮点格式时,必须去掉多余的位
- 就近舍入:结果被舍入成最近的可表示的数
- 朝$+\infty$舍入:结果朝正无穷方向向上舍入
- 朝$-\infty$舍入:结果朝负无穷方向向下舍入
- 朝0舍入:结果朝0舍入