C语言进阶篇(三)浮点数的秘密

一、内存中的浮点数

    浮点数在内存中的存储方式为符号位、指数、尾数

   

    float和double类型的数据在计算机内部的表示法是相同的,但由于所占内存空间的不同,其分别能够表示的数值范围和精度不同。

二、浮点数的转换

  1.     将浮点数转换成二进制
  2.     用科学计数法表示二进制浮点数
  3.     计算指数偏移后的值

    注意:计算指数时需要加上偏移量,而偏移量的值与类型有关。

    示例:对于指数6,偏移后的值如下:

    float:127+6 ->133

    double:1023 ->1029

三、实例

    实数8.25在内存中的float表示

        8.25的二进制表示:1000.01 -> 1.00001 x (2^3)

            符号位:0

            指数为:3+127 -> 130 -> 10000010

            小数位:00001

        内存中8.25的float表示

            0 10000010 00001 000000000000000000 -> 0x41040000

    

    

猜你喜欢

转载自blog.csdn.net/u011127936/article/details/80040254