gub*_*r90 6 precision design-decisions design-rationale ieee-754
我对下一步如何确定感兴趣:
那么如何确定尾数的位数是多少,以及e的位数是多少.我想这是noob问题,但我想知道答案.
如果您自己开发一种格式,那么您可以根据您需要更高的精度或更大的范围来决定指数和尾数的位数。由于 IEEE-754 是为一般用途而设计的,因此他们必须在大多数情况下选择更好的
\n在 IEEE-754 之前,存在许多优缺点各异的浮点格式,其中一些来自 DEC。最初,DEC 为其 VAX 系统创建了 32 位 F 和 64 位 D 格式,两者都有 8 位指数,以表示所有重要的物理常数,包括 Plank 常数 (6.626070040 \xc3\x97 10 -34 )和阿伏加德罗常数 (6.022140857 \xc3\x97 10 23 )。但他们很快意识到数量非常有限,并且时不时会发生上溢/下溢,因此他们必须在指数上再添加 3 位以创建新的 64 位 G 格式。当 Kahan 博士撰写 IEEE-754 草案时,他“建议复制 DEC VAX 的浮点,因为它在当时非常有用”,这就是 IEEE-754 单精度和双精度具有 8 和 11 的原因指数部分的位分别
\n64 位格式的另一个基本原理是允许重复乘法而不会溢出
\n\n\n对于64位格式,主要考虑的是范围;至少,我们希望任何两个 32 位数字的乘积不应溢出 64 位格式。指数范围的最终选择规定八个 32 位项的乘积不能溢出 64 位格式 \xe2\x80\x94 这对优化编译器的用户来说可能是一个福音,优化编译器可以根据仔细指定的顺序重新排序算术运算序列。程序员。
\n“二进制浮点运算的拟议标准”,David Stephenson,IEEE 计算机,卷。14,第 3 期,1981 年 3 月,第 51-62 页
\n
出于同样的原因,各种 DSP 都有更宽的累加器寄存器,通常为 40 位,以允许将 32 位值相加 256 次而不会溢出
\n事实上,现在 IEEE-754 交换格式的规则,指数的大小是round(4 log 2 (k)) \xe2\x88\x92 13位,因此每次我们将类型的宽度加倍时,指数将是~4 位以上,允许较窄类型进行 16 次乘法而不会溢出
\n在 16 位半浮点格式中,如果指数仅使用 4 位,则范围太窄,最大值甚至比最大 16 位 int 值小得多,因此使用 5 位。半浮点数主要用于计算机图形学,因此 11 位的精度可能就足够了,并且它们需要更大的指数以获得更宽的动态范围。
\n有关更多详细信息,请参阅IEEE 754 的自由参数从哪里来?
\n