浮点数在内存中的表示

1.一个浮点数(Floating Point Number)由三个基本成分构成:符号(Sign)、阶码(Exponent)和尾数(Mantissa)。

2.单精度在内存中占4个字节,双精度占8个字节。

2. Floating

  S--------E-------M

  1位-----8位-----23位

 Double

  S--------E-------M

  1位-----11位----52位

3.从二进制换算十进制的公式为S * 2^(E-127) * (1.M),浮点数的精度取决于尾数部分,尾数部分的位数越多,能够表示的有效数字越多。

4.单精度数的尾数用23位存储,加上默认的小数点前的1位1,2^(23+1) = 16777216。因为 10^7 < 16777216 < 10^8,所以单精度浮点数的有效位是7位。 

双精度的尾数用52位存储,2^(52+1) = 9007199254740992,10^16 < 9007199254740992 < 10^17,所以双精度的有效位数是16位。

posted @ 2012-07-20 20:52  以最低调的姿势  阅读(217)  评论(0)    收藏  举报