zoukankan      html  css  js  c++  java
  • C语言 -- float和int变量存储上的差别

      今天看到一个视频,上面写了这样一段程序:

    #include <stdio.h>
    #include <float.h>
    #include <limits.h>
    
    int main( void )
    {
    	printf("%d, %d
    ", sizeof(float), sizeof(int));
    	printf("%f, %f
    ", FLT_MAX, FLT_MIN);
    	printf("%d, %d
    ", INT_MAX, INT_MIN);
    
    	return 0;
    }
    

      显示结果如下:

      一开始感觉很差异,因为float和int都是四个字节,可是为什么可以表示的范围有这么大的差别??

      看到解释之后才明白,浮点数在内存中的存储是以指数的形式存在的。

      就像1.1 - 1.2之间,理论上有无限个浮点数存在,如果要一一映射,在内存中是不可能实现的

      因此,内存中的浮点数以指数形式存储,而且小数点的位数是可以变动的。

      所以,才会出现同样是4个字节,但是表示范围不一样的情况!!!

  • 相关阅读:
    什么是“方法”
    break与continue
    循环结构2
    循环结构1
    Switch多选择结构
    if选择结构
    Scanner方法
    Doc参数信息
    运算符号
    变量与常量
  • 原文地址:https://www.cnblogs.com/zhq-blog/p/6126988.html
Copyright © 2011-2022 走看看