浮点四则运算
浮点加减法
- 对于浮点数的加减运算,需要按照一下的步骤进行:
- 对阶:使两数的小数点位置对其
- 尾数求和:将对阶后的两位尾数按定点加减运算规则求和
- 规格化:为增加有效数字的位数,提高运算精度,必须进行规格化
- 舍入:为了提高精度,需要考虑尾数右移时候丢失的数值位
- 溢出判断
对阶
- 目的:使两操作数的小数点位置对其
- 操作:让小阶看向大阶
- 原因:右移一位可能会损失精度,但是左移将直接使数据错误,相比之下,右移带来的代价要小得多
尾数求和
将两个尾数按照定点加减法的运算规则进行运算即可
规格化
![[数的定点表示和浮点表示#浮点数的规格化形式]]
舍入
[!question] 在对阶和规格化的过程中,可能会导致尾数的低位丢失,引起误差,影响精度。 因此,通过舍入的方法来提高尾数的精度 - 舍入的方法 - 0舍1入: - 类似于四舍五入法 - 恒置1法:
溢出判断
- 浮点的溢出与否可由阶码的符号决定
- 阶码\([j]_补=01,\times\times\times\times\)为上溢
- 阶码\([j]_补=10,\times\times\times\times\)为下溢,按照机器零处理
浮点乘除法
- 乘积的组成:
- 阶码:\(阶码+阶码\)
- 尾数:\(尾数\times尾数\)
- 商的组成:
- 阶码:\(被除数的阶码-除数的阶码\)
- 尾数:\(被除数的尾数/除数的尾数\)
[!attention] 在运算的过程中,同样需要考虑规格化和舍入的问题
- 浮点补码加减运算的流程: