float为32bit,double为64bit,他们的存储都是遵从IEEE规范的
符号位(Sign) : 0代表正,1代表为负
指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储
尾数部分(Mantissa):尾数部分
IEEE754三种浮点数的格式参数
类型
数符(s)
阶码(E)
尾数(M)
总位数
E存储移位
十六进制
十进制
单精度(Single,Float)
1位
8位
23位
32位
127
0x7FH
+127
双精度(Double)
1位
11 位
52位
64位
1023
0x3FFH
+1023
在计算机中,要将数字首先转化为二进制数的科学计数表示
如10.25f用二进制表示为:0000 1010.01
科学计数表示为1.01001*2^3
S:0
E:E-127=3 E=130
M:01001
在计算机中的单精度存储
0
1000 0010
0100 1000 0000 0000 0000 000
双精度存储
S:0
E:E-1023=3 E=1026
M:01001
那么负数呢
如-0.5f
的单精度
二进制表示:-0.1 标准计数: -1.0*(2的-1次幂)
S:1
E:E-127=-1 E=126
01111110
M:23个0
在计算机中存储为:
1 01111110
0000 0000 0000 0000 0000 000
双精度存储类似