欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

定点运算之浮点数加减法

程序员文章站 2022-06-03 11:59:02
...

一.运算步骤

1.对阶

• 求阶差;
• 将移阶码小的浮点数的尾数右移(小数点左移),并增加其阶码,直至两数阶码相等。


2.尾数加/减运算

用的是对阶之后的尾数


3.结果规格化

尾数为 00.1xxx 或 11.0xxx,直接执行下一步,否则需要规格化

 符号位不相同(为0110,溢出),右归即进行一次右移,然后将阶码加101.XXX →00.1XX
  • 10.XXX→ 11.0XX
 符号位相同,且最高数值位与符号位相同,左归,每移动一次,阶码减1(移动形式至00.1XX 或11.0XX) 
 
 • 11.10011.000(左移一次,阶码减111.11011.000(左移两次,阶码减2)
   
 • 00.0XX→00.1XX

总之,规格化完的尾数必须为 00.1XXX或11.0XXX


4.舍入

右移规格化时可能丢失一些低位的数值位, 为提高精度, 可采取舍入的方法:

•0 舍 1 入 : 若右移出的是1则在最低位加1,为0,直接去掉

例如 X=00.1101100,  Y=00.1101011, 如果加符号位只需6位
则 X=00.1110100) 首位为1,即去掉(100)在最低位加1;
   Y=00.1101011) 首位为0,直接去掉。

•恒置 1 : 只要数字位1被移掉,就将最后一位恒置成1。


5.检查阶码符号位是否溢出

不溢出 :0011

溢出
    • 阶码上溢 : 阶码的符号位为 01
    • 阶码下溢 : 阶码的符号位为 10

二.实例


定点运算之浮点数加减法

相关标签: 补码