如何确定IEEE 754单精度和双精度格式

时间:2014-04-14 16:06:39

标签: floating-point-precision

我对下一步如何确定感兴趣:

  1. 单精度具有:8位用于e,其余(23位)用于尾数
  2. 双精度:e为11位,其余为52位(52位)为尾数 ofc有1位用于签署。
  3. 那么如何确定尾数的位数是多少,以及e的位数是多少。我想这是noob问题,但我想知道答案。

1 个答案:

答案 0 :(得分:0)

如果您为自己开发了一种格式,那么您可以根据需要更高精度或更大范围来确定指数和尾数的位数。由于IEEE-754是为一般用途而设计的,因此它们必须在大多数情况下选择更好的产品。为了确定k位格式的指数字段的宽度,他们使用像这样的公式

w = round(4 log2(k))−13

https://en.wikipedia.org/wiki/IEEE_floating_point#Interchange_formats

64位和128位格式遵循此。然而,在32位格式中,指数有点大(8比7),尽管我不知道这背后的基本原理。在16位半浮点格式中,由于范围太窄而且最大值甚至远小于最大16位int值(如果仅使用4位指数),它们使用5位代替。半浮点主要用于计算机图形,因此11位精度可能就足够了,它们需要更大的指数才能获得更宽的动态范围。因此他们最终可能会选择那个。