Language agnostic “中最大可表示浮点/微小错误”;每一位计算机科学家都应该了解浮点运算;。

Language agnostic “中最大可表示浮点/微小错误”;每一位计算机科学家都应该了解浮点运算;。,language-agnostic,floating-point,Language Agnostic,Floating Point,我相信“每个计算机科学家都应该知道浮点运算”这篇论文中有一个小小的错误 它声称 一种不太常见的情况是实数超出范围,即其绝对值大于 这几乎是精确的,最大可表示浮点数略小于此值,当实数大于时超出范围 对吗?我不喜欢图像,所以我会写b代表“beta”,m代表“e_max” 假设b是基数,p是精度,m是最大指数 那么我想你想要的表达是: (1 - b^(-p)) * b^m 例如,对于精度为4位且最大指数为12的基数-10,这将给出: .9999 * 10^12 …这是正确的 请注意,这并不完全

我相信“每个计算机科学家都应该知道浮点运算”这篇论文中有一个小小的错误

它声称

一种不太常见的情况是实数超出范围,即其绝对值大于

这几乎是精确的,最大可表示浮点数略小于此值,当实数大于时超出范围


对吗?

我不喜欢图像,所以我会写b代表“beta”,m代表“e_max”

假设b是基数,p是精度,m是最大指数

那么我想你想要的表达是:

(1 - b^(-p)) * b^m
例如,对于精度为4位且最大指数为12的基数-10,这将给出:

.9999 * 10^12
…这是正确的


请注意,这并不完全适用于IEEE浮点,因为前面的“1”位是隐式的。当指数都是1时,我隐约记得一些奇怪的事情。

我对图像不感兴趣,所以我会写b代表“beta”,m代表“e_max”

假设b是基数,p是精度,m是最大指数

那么我想你想要的表达是:

(1 - b^(-p)) * b^m
例如,对于精度为4位且最大指数为12的基数-10,这将给出:

.9999 * 10^12
…这是正确的


请注意,这并不完全适用于IEEE浮点,因为前面的“1”位是隐式的。我模糊地回忆起指数都是1时的一些奇怪现象。

也许“大于”应该是“大于或等于”。是的,这也会是正确的,但不那么精确。在我看来是正确的。另外,如果只从
i=0
开始求和,则可以从表达式中删除
1+
。等等,这不对。贝塔是基础,对吗?例如,如果beta=10,则需要一个类似.9999*10^n的数字。我想你需要一个(β-1)因子在你的总数中。也许“大于”应该是“大于或等于”。是的,那也会是正确的,但不那么精确。我看是对的。另外,如果只从
i=0
开始求和,则可以从表达式中删除
1+
。等等,这不对。贝塔是基础,对吗?例如,如果beta=10,则需要一个类似.9999*10^n的数字。我认为你的总数需要一个(β-1)因子。