浮点数在计算机中的存储方式主要遵循 IEEE 754标准。根据该标准,浮点数通常由三个部分组成:
符号位(S):
占1位,用于表示正负数。0代表正数,1代表负数。
指数位(E):
占8位,用于表示数的大小。为了将指数表示为二进制数,实际指数需要加上一个偏置量(bias),对于32位浮点数,偏置量为127。因此,存储的指数实际上是E+127。
尾数位(M):
占23位,用于表示数的精度。尾数的有效数字位从左边不是0的第一位开始算起,小数点后的所有位都包括在内。
以32位单精度浮点数(float)为例,其存储格式如下:
符号位(S):1位
偏置指数(Biased Exponent):8位
分数(Mantissa):23位
具体存储示例:
对于浮点数0.00101,其二进制表示为1.01 * 2^-3。
存储时,符号位为0,偏置指数为-3(实际指数为-3+127=124),尾数为010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000