浮点数(float或double)在存储方式上都遵从IEEE的规范,float遵从的是IEEE R32.24, 数据占据32bit,double遵从的是R64.53,数据占用64bit。
8.25:41 04 00 00 (高位在前)
0100 0001 | 0000 0100 | 0000 0000 | 0000 0000 |
Bit31: 符号位(Sign):0
Bit30-23:指数位(Exponent);1000 0010:128+2 =127+3
Bit22-0:尾数位(Mantissa):00001(后全0可省略):1.00001
用二进制科学计数法表示为:1.00001 * 2^3 = 1000.01 = 8.25
24.5:41 C4 00 00 (高位在前)
0100 0001 | 1100 0100 | 0000 0000 | 0000 0000 |
Bit31: 符号位:0
Bit30-23:指数位;1000 0011:128+3 =127+4
Bit22-0:尾数位:10001(后全0可省略):1.10001
用二进制科学计数法表示为:1.10001 * 2^4 = 11000.1 = 24.5
32 bit IEEE754 floating format分三部分:
符号位(sign)占1bit,指数部分(exp)占8bits,尾数部分(x)占23bits.
所表示的十进制数值
result = (-1)^sign * ( 1 + x / ( 2^23 ) ) * 2 ^ ( exp -127 )