浮点转换格式算法IEEE

时间:2015-05-20 10:34:39

标签: floating-point floating-point-conversion

假设我有一个给定格式FA的浮点(fp)(即用他的指数大小,尾数大小),更具体地说是

FA fa;

并假设我想要一个带有操作FA2FB的格式FB,它给出一个浮点数fb,即类似

FB fb = FA_2_FB(fa);

根据您的知识,IEEE标准是否提供了执行此投射的一般方法? (它可能是一个缩小的扩展或简单的格式更改,具有相同的位数。

我的问题清楚了吗? 如果标准没有提供任何内容,我将指定我正在考虑的案例。

1 个答案:

答案 0 :(得分:1)

我正在复制维基百科文章IEEE floating point

中的术语

我认为最好的方法是将其分为四个问题:

  1. 识别NaN和无限输入,并直接生成目标格式的相应位模式。
  2. 给定数字输入,提取符号,有效数和指数
  3. 检查新格式的溢出和次正常。如果溢出,则生成适当的无穷大。如果是subnormal,则计算要在有效数中保留的位数。
  4. 打包成新格式。如果新的有效位数比旧有效位数少,则可能需要舍入。
  5. 您需要选择一种标准舍入模式。最简单的是向零舍入,这是简单的截断。但是,我建议舍入到最近,中点四舍五入到偶数。为此,您需要同时查看第一个丢弃位的值,以及是否有超出它的任何非零位。