Floating point 如何确定32位IEEE浮点值的集合中有多少个整数

Floating point 如何确定32位IEEE浮点值的集合中有多少个整数,floating-point,integer,single-precision,Floating Point,Integer,Single Precision,有人能给我解释一下它到底在说什么吗?我知道这基本上意味着它是单精度的,有1位符号,8位指数和23位尾数。答案不应该是2*2^8-2*2^23吗 编辑:2*2^8-2*2^23确定所有32位IEEE浮点值吗?有限正浮点数的范围从2-149(最小次正常值)到2128-2104(有限值指数最大且所有一位有效位的数字)。我们可以将其分为三类: 值小于1。其中零是整数 从1到224-1的值。有些是整数,有些不是。但是,此范围内的每个整数都在浮点数集中,因为它们最多有24位有效位,因此可以用24位有效位表

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


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

有限正浮点数的范围从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再加一个,所以总数是1778384895


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

有限正浮点数的范围从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再加一个,所以总数是1778384895


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

您建议的答案会计算所有浮点值;该问题要求的值是整数。粗略估计,不到一半是整数——任何指数<0的东西都不能是整数(除非它是零),任何指数>=23(尾数大小)的东西都绝对是整数。Nvm解决了这个问题,谢谢你的帮助!真正为我澄清了事情你提出的答案计算了所有的浮点值;该问题要求的值是整数。粗略估计,不到一半是整数——任何指数<0的东西都不能是整数(除非它是零),任何指数>=23(尾数大小)的东西都绝对是整数。Nvm解决了这个问题,谢谢你的帮助!这是一个重复的问题,但你的答案比原来的答案要清楚得多(例如,你使用无偏值作为指数)。如果你想知道整数位模式的数量,你需要同时计算正零和负零。这是一个重复的问题,但是你的答案比原来的答案要清楚得多(例如,你使用无偏值作为指数)。如果你想知道整数的位数,你需要同时计算正零和负零。