zoukankan      html  css  js  c++  java
  • float数据在内存中存储方式

    float类型数字在计算机中用4个字节存储。遵循IEEE-754格式标准:

    一个浮点数有3部分组成:

       符号部分,0 表示正,1表示负。

        底数部分 使用二进制数来表示此浮点数的实际值,底数部分实际是占用24bit的一个值,但是最高位始终为1,所以,最高位省去不存储,在存储中占23bit科学计数法。
    
        指数部分 占用8bit的二进制数,可表示数值范围为0-255。
    

    但是指数可正可负,所以,IEEE规定,此处算出的次方必须减去127才是真正的指数。所以,float类型的指数可从-126到128。
    所以格式为:

    SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
    
    • S表示浮点数正负
    • E指数加上127后的值得二进制数据
    • M底数

    举例:
    17.625在内存中的存储

    首先要把17.625换算成二进制:10001.101。

    整数部分,除以2,直到商为0,余数反转。
    小数部分,乘以2,直到乘位0,进位顺序取。

    将10001.101右移,直到小数点前只剩1位:1.0001101 * 2^4 因为右移动了四位。

    底数:因为小数点前必为1,所以IEEE规定只记录小数点后的就好。所以,此处的底数为:0001101。
    指数:实际为4,必须加上127(转出的时候,减去127),所以为131。也就是10000011。
    符号部分是正数,所以是0。

    综上所述,17.625在内存中的存储格式是:

    01000001 10001101 00000000 00000000   
    
  • 相关阅读:
    T3984 迷宫问题 TJ
    P1091 合唱队形 TJ
    P4549 【模板】裴蜀定理
    牛客NOIP集训一S 牛牛的方程式 TJ
    P3387 【模板】缩点 TJ
    [数字图像处理](三)对数变换
    [数字图像处理](四)直方图均衡化[HE]算法
    [ACM]KMP算法的两种写法,从0开始,从1开始
    [计算几何]补题
    [Servlet]IJ idea搭建Servlet初步
  • 原文地址:https://www.cnblogs.com/chay/p/10587373.html
Copyright © 2011-2022 走看看