根据国际标准IEEE(电气和电子工程协会)754,任意一个二进制浮点数V可以表示成:
V=(-1)^S*M*2^E
1.S S=0,表示浮点数为正。S=1,表示浮点数为负。因为不管是float(单精度浮点型),还是double(双精度浮点型),都是只用一个比特位来存储s,也只需要一位就可以表示数据的正负,所以s要么是0,要么为1。为0的时候,(-1)^0表示数据的正。为1的时候,(-1)^1就表示为负。
2.M 因为M是二进制,只存在0或1,变换E的值可以使M位于1~2。因为M为1.,所以小数点前的1是固定的,所以存储的时候,就不用去管1。只要确定了S,M,E,就可以确定V的值。
3.E E是阶码代数(指数)。
float(单精度浮点数)类型占4个字节(32个比特位)。
double(双精度浮点数)类型占8个字节(64个比特位)。
1.对于32位浮点数,最高位的1位比特位存储S,接下来的8位比特位存储E,最后23位用来存储M.
例如:5.5在内存中存储的数据 (5.5(十进制)=101.1(二进制)=(-1)^0*1.011*2^2=0 00000010 00000000000000000000011)

2.对于64位浮点数,最高位的一位比特位存储S,接下来11位比特位存储E,最后52位用来存储M.