跳转至

浮点四则运算

浮点加减法

  • 对于浮点数的加减运算,需要按照一下的步骤进行:
    1. 对阶:使两数的小数点位置对其
    2. 尾数求和:将对阶后的两位尾数按定点加减运算规则求和
    3. 规格化:为增加有效数字的位数,提高运算精度,必须进行规格化
    4. 舍入:为了提高精度,需要考虑尾数右移时候丢失的数值位
    5. 溢出判断

对阶

  • 目的:使两操作数的小数点位置对其
  • 操作:让小阶看向大阶
    • 原因:右移一位可能会损失精度,但是左移将直接使数据错误,相比之下,右移带来的代价要小得多

尾数求和

将两个尾数按照定点加减法的运算规则进行运算即可

规格化

![[数的定点表示和浮点表示#浮点数的规格化形式]]

舍入

[!question] 在对阶和规格化的过程中,可能会导致尾数的低位丢失,引起误差,影响精度。 因此,通过舍入的方法来提高尾数的精度 - 舍入的方法 - 0舍1入: - 类似于四舍五入法 - 恒置1法:

溢出判断

  • 浮点的溢出与否可由阶码的符号决定
    • 阶码\([j]_补=01,\times\times\times\times\)为上溢
    • 阶码\([j]_补=10,\times\times\times\times\)为下溢,按照机器零处理

浮点乘除法

  • 乘积的组成:
    • 阶码:\(阶码+阶码\)
    • 尾数:\(尾数\times尾数\)
  • 商的组成:
    • 阶码:\(被除数的阶码-除数的阶码\)
    • 尾数:\(被除数的尾数/除数的尾数\)

      [!attention] 在运算的过程中,同样需要考虑规格化和舍入的问题

  • 浮点补码加减运算的流程: