Floating point 使用IEEE-754单精度可以表示多少个标准化数字?

Floating point 使用IEEE-754单精度可以表示多少个标准化数字?,floating-point,ieee-754,Floating Point,Ieee 754,基于IEEE-754单精度标准,如果我知道以下内容,我如何知道可以表示多少标准化数字: 标志1位 指数为8位 尾数是23位 是否有一条规则可以应用于任何其他浮点系统?您已经确定了表示的每个部分的位数,因此您已经完成了一半。有: 2^1=符号的2种可能性 2^8=指数位的256种可能性,其中两种为非正态保留:全零指数字段用于浮点零和次正态,而全1指数字段用于无穷大和非正态 2^23=8388608尾数的可能性(注意,“有效位”通常是首选术语) 相乘,即给出了2*2^23*(2^8-2),或等效

基于IEEE-754单精度标准,如果我知道以下内容,我如何知道可以表示多少标准化数字:

标志1位

指数为8位

尾数是23位


是否有一条规则可以应用于任何其他浮点系统?

您已经确定了表示的每个部分的位数,因此您已经完成了一半。有:

  • 2^1=符号的2种可能性
  • 2^8=指数位的256种可能性,其中两种为非正态保留:全零指数字段用于浮点零和次正态,而全1指数字段用于无穷大和非正态
  • 2^23=8388608尾数的可能性(注意,“有效位”通常是首选术语)
相乘,即给出了
2*2^23*(2^8-2)
,或等效的
2^32-2^25
,全部可能性。因此,IEEE 754二进制32格式中有不同的正常数。从技术上讲,这两个零不是正常的数字,但是如果你想把它们包括在计数中,你会得到
2^32-2^25+2

是的,这直接推广到所有其他IEEE 754二进制交换格式。我会让你去寻找双精度、半精度、四精度等的数字


为了好玩,这里有一个完整的分类:

  • 2个零(符号0或1,指数和有效位字段为零)

  • 2^24-2个次正常数字(符号0或1,指数字段零,有效位字段非零)

  • 2^32-2^25正常数字(如上所述)

  • 2无穷大(符号0或1,指数字段所有1,有效位字段0)

  • 2^23-2信令NAN(符号0或1,指数字段所有1,有效位字段非零,但第一位为零)

  • 2^23安静的NaN(符号0或1,指数字段全部为1,有效位字段的第一位为1)