0

有人可以向我解释它到底在说什么吗?我知道这基本上意味着它是具有 1 位符号、8 位指数和 23 位尾数的单精度。答案不应该只是 2 * 2^8-2 * 2^23 吗?

编辑:是否 2 * 2^8-2 * 2^23 确定所有 32 位 IEEE 浮点值

4

1 回答 1

5

有限正浮点数的范围从 2 -149(最小的次正规数)到 2 128 -2 104(具有有限值的最大指数且有效位全为 1 的数字)。我们可以将它们分为三类:

  • 小于 1 的值。其中零是整数。
  • 从 1 到 2 24 -1 的值。其中有些是整数,有些不是。但是,此范围内的每个整数都在浮点数集中,因为它们最多有 24 个有效位,因此可以用 24 位有效数表示。因此,浮点数在这个区间内有 2 24 -1 个整数。
  • 2 24及以上的值。所有这些都是整数,因为它们的有效数字中的最低有效位置至少表示 1。此范围包含所有具有从 24 到 127 的指数(为二)的浮点数以及每个允许的有效数字。有效数字是所有以“1”开头的数字。后跟任意 23 位,所以有 2 23个有效位。因此,有 (127-24+1)•2 23个这些数字。

正整数的总数为 0 + 2 24 -1 + (127-24+1)*2 23。负整数个数一样,0加一,所以总数是1,778,384,895。

(一旦我们找到了这个数字,它就会给我们一个搜索键来查找重复的问题。)

于 2017-10-25T20:38:42.897 回答