【问题标题】:How do you determine how many integers are in set S of all in 32-bit IEEE floating-point values [duplicate]您如何确定 32 位 IEEE 浮点值的集合 S 中有多少个整数 [重复]
【发布时间】:2017-10-25 05:59:43
【问题描述】:

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

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

【问题讨论】:

  • 您提出的答案计算所有浮点值;该问题要求的值是 整数。作为一个粗略的估计,我会说不到一半是整数 - 任何指数 = 23(尾数的大小)的东西绝对是整数。
  • Nvm 搞定了,感谢您的帮助!真的为我澄清了事情

标签: floating-point integer single-precision


【解决方案1】:

有限正浮点数的范围从 2-149(最小的次正规数)到 2128-2104(数具有有限值的最大指数和所有一位的有效位)。我们可以将它们分为三类:

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

正整数的总数为 0 + 224-1 + (127-24+1)*223。负整数个数相同,0加一,总计为1,778,384,895。

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

【讨论】:

  • 这个问题是重复的,但你的答案比原来的答案更清楚(例如,你使用指数的无偏值)。
  • 如果想知道整数位模式的数量,需要同时计算正零和负零。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-22
  • 2020-05-09
  • 2016-05-07
  • 1970-01-01
  • 2018-01-03
  • 1970-01-01
相关资源
最近更新 更多