最高(现有)半精度IEEE 754

时间:2015-10-31 16:47:13

标签: binary floating-point ieee-754 ieee

为什么0 11110 1111111111而不是0 11111 1111111111是最高半精度数?

1 个答案:

答案 0 :(得分:7)

因为指数字段11111 2 是为无穷大和NaN保留的。 IEEE 754-2008标准的第3.4节说:

  

编码的偏差指数E的范围应包括:

     
      
  • 1到2之间的每个整数 w - 2,包括在内,以编码正常数字
  •   
  • 保留值0以编码±0和次正规数
  •   
  • 保留值2 w - 1编码±∞和NaNs。
  •   

这里“w”是指数字段的宽度。这不仅适用于半精度格式,也适用于所有IEEE 754二进制交换格式(包括通常的单精度和双精度格式)。

在binary16格式的特定情况下,w为5,符号位后面的前5位描述偏置指数E,范围从00000 2 到11111 2 < /子>。此范围中的最高值11111 2 用于无穷大和NaN值,而底部值00000 2 用于零和子正态。剩余的偏差指数值用于表示有限正常数。因此,有限数可用的顶部偏差指数值为2 w - 2 = 11110 2 而不是11111 2

对于此格式,指数偏差为15,因此位模式0 11110 1111111111给出无偏指数30 - 15 = 15,并表示值1.1111111111 2 ×2 15 ,或65504。

再举一个例子,最大的binary32(单精度)浮点数由位模式

表示
  

0 11111110 11111111111111111111111 2