美文网首页
float数据在内存中的存储方法

float数据在内存中的存储方法

作者: dacheng | 来源:发表于2016-04-27 15:33 被阅读199次

    参考文档:IEEE754 浮点数
    参考文档:百度文科
    参考文档:资料

    浮点型变量在计算机内存中占用4字节(Byte),即32-bit。遵循IEEE-754格式标准。一个浮点数由2部分组成:尾数m(或称底数)和指数e。
    ±mantissa × 2exponent
    (注意,公式中的mantissa 和 exponent使用二进制表示)

    • 尾数部分 使用二进制数来表示此浮点数的实际值。尾数部分实际是占用24-bit的一个值,由于其最高位始终是1 ,所以最高位省去不存储,23-bit的位置实际表示了24-bit的二进制数字。
    • 指数部分 占用8-bit的二进制数,可表示数值范围为0-255。 但是指数应可正可负,所以IEEE规定,此处算出的次方须减去127才是真正的指数。所以float的指数可从 -127到127(阶码不能达到1111 1111,IEEE规定,当编译器遇到阶码为0XFF时,即调用溢出指令)。
    • 符号位 用来指示浮点数的正负,当符号位是1时,为负数,符号位是0时,为正数。
    float数据在内存中的表示

    现在来计算float类型数据表示的最大值。

    符号位 0 (代表正数)
    指数位 1111 1110 (十进制值为254,代表阶码127)
    尾数为 1111 1111 1111 1111 1111 111(转换后的尾数位1.11111111111111111111111)

    实际代表的值 = + 转换后的尾数位 右移 阶码位
    即1.11111111111111111111111右移128位 这个值为
    340282346638528859811704183484516925440
    或约为3.4028235E+38

    相关文章

      网友评论

          本文标题:float数据在内存中的存储方法

          本文链接:https://www.haomeiwen.com/subject/jlucrttx.html