1、IEEE浮点标准
根据IEEE的标准,任意一个浮点数V可以用下面的公式来表示:
V = (-1)s * 2e * M
- s – 符号,决定是正数还是负数
- E – 阶码,对浮点数的加权,权重是2的E次幂(可能是负数)
- M – 尾数,一个二进制小数,它的范围是0至1,或者1到2(后面进行说明)
将浮点数的位划分为三个段,分别对应上述公式中的3个变量。
- s位一个单独的符号位
- k位的阶码字段 exp,用来编码E
- n位小数字段 frac,用来编码M,但编码出来的值也依赖阶码字段是否等于0
从上图可知:
单精度浮点:
1位符号位,8位阶码以,23位尾数
双精度浮点:
1位符号位,11位阶码,52位尾数
如果给定了位 s 的表示,根据 exp 的值,被编码的值可以分为三种不同的情况(最后一种情况有两个变种)。下图是单精度的情况: