float 在32位机上是 4个字节的。
它的结构是这样子的:
1位符号位 | 8 位指数位 | 23尾数位
其中指数是指以2 为底的指数, 因为指数可能为负数,比如十进制小数0.025,就是二进制小数0.001 (0*1/2 + 0*1/4 +1*1/8), 相当于1 *2 的-3次方。
所以规定指数位要加上127.
eg: float f=10.5;
f是正数,所以符号为是0, 10.5 相当于二进制的 1010.1 即 1.0101 *exp(2,3). 所以指数部分为 127+3=130.
尾数部分为0101 (二进制1.0101的尾数部分)。
所以10.5的二进制形式为 | 0 | 10000010 | 0101 0000 0000 0000 0000 000