浮点数的存储不同于整数的存储可以利用以下公式:
(-1)^S*M*2^E
(-1)^S表示符号位,当S等于0是该数为正数,当S=1时该数为负数;
M表示科学技术法的有效数字大于1小于2;
2^E表示指数位;
举个例子:
十进制的10.0用二进制表示1010.0,相当于1.01×2^3,按照上述规则则有S=0,M=1.01,E=3;
对于32位的浮点数:
S占一个比特位;E占8个比特位;M占23个比特位把10.0放入则为
S 0 | E | 1 | E 1 | M | 0 | M 1 |
由于M的第一位都是1,所以可以省略,只保存小数点后的数字,在读取时再加上1即可。