• float double 如何存储


    类型float大小为4字节,即32位,内存中的存储方式如下: 符号位(1 bit)   指数(8 bit)   尾数(23 bit)  

    类型double大小为8字节,即64位,内存布局如下: 符号位(1 bit)   指数(11 bit)   尾数(52 bit)   

           符号位决定浮点数的正负,0正1负。  

           指数和尾数均从浮点数的二进制科学计数形式中获取。 

           如,十进制浮点数2.5的二进制形式为10.1,转换为科学计数法形式(数学术语,a×10的n次幂的形式)  为(1.01)*(10^1),由此可知指数为1,尾数(即科学计数法的小数部分)为01。  

           根据浮点数的存储标准(IEEE制定 https://en.wikipedia.org/wiki/IEEE_754-1985 ),float类型指数的起始数为127(二进制0111 1111),double类型指数的起始数为1023(二进制011 1111 1111),在此基础上加指数,得到的就是内存中指数的表示形式。尾数则直接填入,如果空间多余则以0补齐,如果空间不够则0舍1入。所以float和double类型分别表示的2.5如下(二进制): 

    符号位   

    指数    float 8位, double 11位

    尾数  

    0   

    1000 0000   

    010 0000 0000 0000 0000 0000  

    0   

    100 0000 0000   

    0100 0000 0000 0000 0000 0000 0000  0000 0000 0000 0000 0000 0000 

  • 相关阅读:
    sublime开启vim模式
    git命令行界面
    搬进Github
    【POJ 2886】Who Gets the Most Candies?
    【UVA 1451】Average
    【CodeForces 625A】Guest From the Past
    【ZOJ 3480】Duck Typing
    【POJ 3320】Jessica's Reading Problemc(尺取法)
    【HDU 1445】Ride to School
    【HDU 5578】Friendship of Frog
  • 原文地址:https://www.cnblogs.com/dzhou/p/9542928.html
Copyright © 2020-2023  润新知