【发布时间】:2014-09-16 17:50:56
【问题描述】:
在What Every Computer Scientist Should Know About Floating-Point Arithmetic 中,作者指出假设基数是偶数。为什么?
【问题讨论】:
-
假设基础甚至在所讨论的特定文档中,为了所有即将到来的证明,作者不想在每次他假设时都明确说明基数是均匀的。
标签: floating-point computer-science
在What Every Computer Scientist Should Know About Floating-Point Arithmetic 中,作者指出假设基数是偶数。为什么?
【问题讨论】:
标签: floating-point computer-science
作者可能夸大了,但考虑到基数 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。
【讨论】: