【问题标题】:What is the rationale for exponent and mantissa sizes in IEEE floating point standards?IEEE 浮点标准中指数和尾数大小的基本原理是什么?
【发布时间】:2010-12-09 10:17:59
【问题描述】:

我对浮点的工作原理有相当了解,但我想知道具体的指数和尾数大小是如何确定的。它们在某种程度上是最优的吗?如何测量浮点表示的最优性(我假设有几种方法)?我想这些问题已在官方标准中得到解决,但我无权访问它。

【问题讨论】:

标签: floating-point standards ieee-754


【解决方案1】:

根据this interview with Will Kahan,他们是基于那个时代的VAX F and G formats

当然,这并不能回答如何选择这些格式的问题...

【讨论】:

  • 虽然我从未见过关于 VAX 浮点格式的公开理由,但我一直认为选择 F 格式的指数范围是为了允许表示所有重要的物理常数,包括普朗克常数 (6.626070040 x 10**-34) 和阿伏伽德罗常数 (6.022140857 x 10**23)。当然,纯属猜想。
  • 互联网搜索让我了解到最初为 PDP-11 设计的 VAX 的 F 和 D 浮点格式的基本原理:PDP-11/40 Technical Memorandum #16。 F 格式的指数范围的讨论特别提到了 Plank 和 Avogadro 常数。
  • NA Digest Sunday, February 16, 1992 Volume 92 : Issue 7 中,由于相对于 LAPACK 的指数范围狭窄,James Demmel 将问题与 VAX 的 D 格式联系起来,但从讨论中不清楚这些问题是如何具体导致在 VAX 的 G 格式中选择 11 个指数位。
  • D. Stevenson, A Proposed Standard for Binary Floating-Point Arithmetic 解释了双精度格式的指数位选择如下:“指数范围的最终选择提供了八个 32 位项的乘积不会溢出 64 位格式-- 对优化编译器的用户来说可能是一个福音,这些编译器从细心的程序员指定的算术运算序列中重新排序。”
【解决方案2】:

对于 32 位 IEEE 浮点数,原因是精度至少应与 24 位定点一样好。

为什么正好是 24 位,我不知道,但这似乎是一个合理的权衡。

我想拥有一个像这样的漂亮“整数”(尾数 + 符号 = 3 个字节,指数 = 1 个字节)也可以使实现更高效。

【讨论】:

  • 将事物分割成字节对实现有很大帮助。将事物拆分为 8+56 或 16+48 也可以实现,但 8 位指数会有点偏小,而 16 位指数会浪费位。
猜你喜欢
  • 2020-12-20
  • 1970-01-01
  • 2011-03-27
  • 2017-03-11
  • 2021-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-06
相关资源
最近更新 更多