浮点型在计算机中的存储
float为32bit,double为64bit,他们的存储都是遵从IEEE规范的
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
双精度存储类似