浮点数在内存中的存储
本文主要介绍通过C语言来获得浮点数在内存中的实际存储方式。
浮点数在内存中是按照IEEE754标准进行存储的,本文以单精度浮点型为例,也就是C语言中的float型,双精度存储原理与单精度的类似,只是位数长度不同。
IEEE754 单精度浮点型格式
float 型有32位,其中最高一位是符号位S,S=0 表示正数,S=1 表示负数。
最高位后面的8位是阶码E,剩下的23位为尾数部分M。
阶码E=指数真值e+127,这样使得阶码不为负数,方便了指数大小比较和运算时的对阶。
安装浮点数规格化的表示,尾数部分的最高有效位应该为1,也就是说,尾数部分M代表的真值为1.M。
S(符号位) | E(阶码) | M(尾数) |
---|---|---|
1位 | 8位 | 23位 |