因此,我正在尝试了解有关 IEEE 754 浮点数标准中定义的非规范化数字的更多信息。感谢 Google 搜索结果,我已经阅读了几篇文章,并且浏览了几篇 StackOverFlow 帖子。但是,我还有一些问题没有得到解答。
首先,回顾一下我对非规范化浮点数的理解:
具有较少位精度的数字,并且比规范化数字更小(在数量上)
本质上,非规范化浮点数能够表示可以用任何浮点值表示的最小(幅度)数。
这听起来正确吗?还有什么比这更重要的吗?
我读过:
在许多平台上使用非规范化数字会带来性能成本
对此有何评论?
我也在其中一篇文章中读到
一个人应该“避免规范化和非规范化数字之间的重叠”
对此有何评论?
在 IEEE 标准的某些演示文稿中,当呈现浮点范围时,会排除非规范化值,并且将表格标记为“有效范围”,几乎就像演讲者在想“我们知道非规范化数字可以代表最小可能的浮点数点值,但由于非规范化数字的某些缺点,我们选择将它们排除在更适合常见使用场景的范围之外”——好像非规范化数字不常用。
我想我只是一直觉得在大多数情况下使用非规范化数字并不是一件好事?
如果我必须自己回答这个问题,我会想:
使用非规范化数字很好,因为您可以表示可能的最小(数量级)数字——只要精度不重要,并且您不将它们与规范化数字混淆,并且应用程序的最终性能符合要求。
使用非规范化数字是一件坏事,因为大多数应用程序不需要这么小的表示 - 精度损失是有害的,而且你可以通过将它们与规范化数字混合起来太容易自取其辱,而且性能不值得付出代价大多数情况下。
对这两个答案有何评论?关于非规范化数字,我还可能遗漏或不了解什么?