【发布时间】:2013-02-14 22:58:48
【问题描述】:
因此,我正在尝试了解有关 IEEE 754 浮点数标准中定义的非规范化数字的更多信息。感谢 Google 搜索结果,我已经阅读了几篇文章,并且浏览了几篇 StackOverFlow 帖子。但是我还有一些问题没有得到解答。
首先,回顾一下我对非规范化浮点数的理解:
精度位数较少且较小的数字(在 幅度)比归一化数字
本质上,非规范化的浮点数能够表示可以用任何浮点值表示的最小(数量级)数。
听起来正确吗?还有什么比这更重要的吗?
我读过:
使用非规范化数字会在许多方面带来性能成本 平台
有这方面的专家吗?
我也读过一篇文章
应该“避免规范化和非规范化数字之间的重叠”
有这方面的专家吗?
在 IEEE 标准的某些演示文稿中,当呈现浮点范围时,非规范化值被排除在外,并且表格被标记为“有效范围”,几乎就像演讲者在想“我们知道非规范化数字可以代表最小可能的浮点值,但由于非规范化数字的某些缺点,我们选择将它们排除在更适合常见使用场景的范围之外”——好像非规范化数字不常用一样。
我想我只是一直觉得在大多数情况下使用非规范化数字并不是一件好事?
如果我必须自己回答这个问题,我会想:
使用非规范化数字很好,因为您可以表示可能的最小(数量级)数字 - 只要精度不重要,并且您不会将它们与规范化数字混淆,并且应用程序的最终性能符合要求。
使用非规范化数字是一件坏事,因为大多数应用程序不需要如此小的表示 - 精度损失是有害的,而且您可以通过将它们与规范化数字混合来太容易地打自己的脚,而性能不是在大多数情况下,物有所值。
对这两个答案有什么意见吗?关于非规范化数字,我还有什么遗漏或不了解的地方?
【问题讨论】:
-
查看这个问题以深入讨论非规范化和处理它们:stackoverflow.com/questions/9314534/…
标签: performance floating-point standards ieee-754