C语言中float和double在计算机中的存储形式

时间秒杀一切 提交于 2020-03-12 17:25:33

    对于浮点类型在C语言中采用float和double类型来存储,float数据占用4字节,double占用8个字节,我们在声明一个float变量的时候,计算机是如何分配内存的呢?
    首先无论是单精度还是双精度,在计算机的存储中分为如下的三个部分:
      1、符号位:0代表是正,1代表是负
      2、指数位:用于存储科学计数法中的指数数据,并且采用移位存储
      3、尾数部分
单精度的存储方式:
双精度的存储方式

例如:
        例如上图的结果表明,指数为-3,尾数为0.01,符号为0,所以可得,1 * 2 ^-3 * 1.01 也就等于1 * 0.00101 ,化为二进制位0.15625
  问题: 为什么在float类型在计算机存储的时候要给指数加上127呢?
        是为了更好的区分正负数,不然就需要判断标志位是0或者是1

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!