所以我正在尝试学习更多关于 IEEE 754 标准中浮点数定义的非规范化数字。通过谷歌搜索结果,我已经阅读了几篇文章,并查看了几个 StackOverFlow 帖子。然而,我仍有一些未解答的问题。
首先,简单回顾一下我对非规范化浮点数的理解:
数字的精度比规范化数字低,并且比规范化数字小(在大小方面)。
基本上,非规范化浮点数能够表示任何浮点值可以表示的最小(在大小方面)数字。
这听起来正确吗?还有其他方面吗?
我读到过:
在许多平台上,使用非规范化数字会带来性能成本。
对此有什么评论吗?
我还在一篇文章中读到过:
应该“避免规范化和非规范化数字之间的重叠”。
对此有什么评论吗?
在IEEE标准的某些演示中,当浮点数范围呈现时,非规格化值被排除在外,并且表格被标记为“有效范围”,几乎好像演示者在想:“我们知道非规格化数字可以表示最小可能的浮点值,但由于非规格化数字的某些缺点,我们选择将它们从适合常见使用情况的范围中排除”——好像非规格化数字并不常用。
我猜我只是一直觉得在大多数情况下使用非规格化数字并不是件好事?
如果我必须自己回答这个问题,我会认为:
使用非规格化数字是好的,因为你可以表示最小(按大小)的数字-只要精度不重要,而且你不会将它们与规格化数字混淆,并且应用程序的性能符合要求。
使用非规格化数字是不好的,因为大多数应用程序不需要如此小的表示-精度损失是有害的,并且你很容易通过将其与规格化数字混淆来自食其果,而且在大多数情况下,性能不值得代价。
对这两个答案有什么评论吗?关于非规格化数字,我还可能遗漏或不理解什么?
首先,简单回顾一下我对非规范化浮点数的理解:
数字的精度比规范化数字低,并且比规范化数字小(在大小方面)。
基本上,非规范化浮点数能够表示任何浮点值可以表示的最小(在大小方面)数字。
这听起来正确吗?还有其他方面吗?
我读到过:
在许多平台上,使用非规范化数字会带来性能成本。
对此有什么评论吗?
我还在一篇文章中读到过:
应该“避免规范化和非规范化数字之间的重叠”。
对此有什么评论吗?
在IEEE标准的某些演示中,当浮点数范围呈现时,非规格化值被排除在外,并且表格被标记为“有效范围”,几乎好像演示者在想:“我们知道非规格化数字可以表示最小可能的浮点值,但由于非规格化数字的某些缺点,我们选择将它们从适合常见使用情况的范围中排除”——好像非规格化数字并不常用。
我猜我只是一直觉得在大多数情况下使用非规格化数字并不是件好事?
如果我必须自己回答这个问题,我会认为:
使用非规格化数字是好的,因为你可以表示最小(按大小)的数字-只要精度不重要,而且你不会将它们与规格化数字混淆,并且应用程序的性能符合要求。
使用非规格化数字是不好的,因为大多数应用程序不需要如此小的表示-精度损失是有害的,并且你很容易通过将其与规格化数字混淆来自食其果,而且在大多数情况下,性能不值得代价。
对这两个答案有什么评论吗?关于非规格化数字,我还可能遗漏或不理解什么?