【问题标题】:Why are floating point bases even?为什么浮点基数是偶数?
【发布时间】:2014-09-16 17:50:56
【问题描述】:

What Every Computer Scientist Should Know About Floating-Point Arithmetic 中,作者指出假设基数是偶数。为什么?

【问题讨论】:

  • 假设基础甚至在所讨论的特定文档中,为了所有即将到来的证明,作者不想在每次他假设时都明确说明基数是均匀的。

标签: floating-point computer-science


【解决方案1】:

作者可能夸大了,但考虑到基数 2 和 10(二进制和十进制)是最常用的,这在最坏的情况下是哲学上的失礼。每http://www.eecs.berkeley.edu/~wkahan/ieee754status/why-ieee.pdf:“几乎每台提供浮点运算的机器都以二进制(基数 2)、八进制 (8)、十进制 (10) 或十六进制 (16) 执行。生物和历史事故使 10 成为机器的首选基数其算术将受到人类的频繁审查。否则二进制是最好的。大于 2 的基数在归一化期间可能会提供微不足道的速度优势,因为前导的几个有效位有时可以保持为零,但这种优势远远超过了在范围/精度权衡和'摆动精度'”。

奇数碱基确实会发生——尽管在计算机技术中,并没有那么多。例如,参见http://mentalfloss.com/article/31879/12-mind-blowing-number-systems-other-languages。更多值得深思的地方http://www.math.wichita.edu/history/topics/num-sys.html

作为旁注,奇数基数会使一半、四分之一、八分之一等无法准确表示,并且还会对十分之一和百分之一造成麻烦。


IEEE 浮点算术标准 (IEEE 754) 仅适用于二进制和十进制格式:http://en.wikipedia.org/wiki/IEEE_floating_point。多年来使用的先前格式列于http://www.mrob.com/pub/math/floatformats.html

【讨论】:

  • 有些甚至基地也不能正确地代表宿舍(等)。偶尔能准确地表示 1/3 会很好。很有趣。
  • @BrianKnoblauch:你能举一个不完全代表四分之一的偶数底的例子吗?
  • 您能否更新您的答案以指定 IEEE 标准使用什么?
  • 抱歉,打错了。我的意思是说“一些基础”而不是“一些甚至基础”。当时在想base 6 会有多酷。
猜你喜欢
  • 2014-10-22
  • 1970-01-01
  • 2019-07-08
  • 2023-01-31
  • 2022-10-06
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 2010-09-12
相关资源
最近更新 更多