9

我很好奇为什么 IEEE 将 32 位浮点数称为单精度。它只是一种标准化的手段,还是“单一”实际上是指单一的“某物”。

它只是一个标准化的水平吗?如,精度级别 1(单),精度级别 2(双)等等?我到处搜索,发现了大量关于浮点数历史的信息,但没有什么能完全回答我的问题。

4

4 回答 4

9

在我当时正在使用的机器上,一个浮点数占用了一个 36 位寄存器。一个 double 占用了两个 36 位寄存器。硬件具有单独的指令,用于对数字的 1 个寄存器和 2 个寄存器版本进行操作。我不确定这就是术语的来源,但这是可能的。

于 2013-07-19T21:10:43.313 回答
1

除了硬件视图,在大多数系统上,32 位格式用于实现 Fortran“实数”类型,而 64 位格式用于实现 Fortran“双精度”类型。

于 2013-07-19T22:07:38.637 回答
0

我认为它只是指用于表示浮点数的位数,其中单精度使用32位,双精度使用64位,即位数的两倍。

于 2013-07-19T21:10:48.133 回答
0

术语“双重”并不完全正确,但已经足够接近了。

64 位浮点数使用 52 位作为分数,而不是 23 位用于 32 位浮点数中的分数 - 它并不是真正的“双倍”,但它确实使用了总位数的两倍。

这个问题的答案很有趣——你应该读一读。

于 2013-07-19T21:19:51.657 回答