2015-05-20 60 views
0

假设我有一个浮点(FP)的给定格式的FA(即,用他的指数大小,尾数大小),并且更具体地是这样算法浮点转换格式IEEE

FA fa; 

和假设我希望这能格式FB与操作FA2FB,这给一个浮点数FB,即像

FB fb = FA_2_FB(fa); 

在你的知识不IEEE标准提供执行该铸造的一般方式的最好? (这可能是一个扩大或简单的格式变化,具有相同数量的位。

是否清除我的问题? 如果标准没有提供任何内容,我将指定我正在考虑哪些情况。

+0

没有答案? Pleeeeease帮助我! – user8469759

+0

我今天似乎无法访问IEEE xplore,所以我无法回答需要标准的问题。你会对基于知识和非标准文档的答案感兴趣吗? –

+0

出于澄清...你谈论的IEEE 754-2008不是?目前,这可能是一个非标准的。 – user8469759

回答

1

我从维基百科的文章复制术语IEEE floating point

我觉得这一点的最好办法是将它分成四个方面的问题:

  1. 确定楠无限的输入,并直接生成correspo以目标格式查找位模式。
  2. 给定数字输入,提取符号,有效数和指数
  3. 检查新格式的溢出和低于正常值。如果溢出,则生成适当的无穷大。如果低于正常值,计算在有效数字中保留的位数。
  4. 打包成新的格式。如果新的有效位的位数少于旧的,则可能需要舍入。

您需要选择其中一种标准舍入模式。最简单的方法是向零取整,这是简单的截断。不过,我建议轮到最接近的中点圆到平均。为此,您需要查看第一个丢弃位的值,以及是否有超出它的任何非零位。

+0

我同意这种做法,但我需要了解是否有标准指定我不知道的东西。这种“某种东西”可能会导致我的实施发生一些变化。例如...假设你必须从尾数M = 30转换为M = 23,相同的指数大小,在这种情况下,我应该执行一种特定类型的舍入? (我基本上砍掉一些数字)。我想我应该在这种情况下使用圆形,后卫和粘性位。 – user8469759

+0

该标准指定了多个舍入模式。包括舍入到零,这是你得到的,如果你只是砍掉数字。最经常使用的是圆心到圆心的平均值。最好用防护和粘性物质完成。 –

+0

指数治疗怎么样? – user8469759