首页 > 代码库 > C语言 -- float和int变量存储上的差别
C语言 -- float和int变量存储上的差别
今天看到一个视频,上面写了这样一段程序:
#include <stdio.h> #include <float.h> #include <limits.h> int main( void ) { printf("%d, %d\n", sizeof(float), sizeof(int)); printf("%f, %f\n", FLT_MAX, FLT_MIN); printf("%d, %d\n", INT_MAX, INT_MIN); return 0; }
显示结果如下:
一开始感觉很差异,因为float和int都是四个字节,可是为什么可以表示的范围有这么大的差别??
看到解释之后才明白,浮点数在内存中的存储是以指数的形式存在的。
就像1.1 - 1.2之间,理论上有无限个浮点数存在,如果要一一映射,在内存中是不可能实现的
因此,内存中的浮点数以指数形式存储,而且小数点的位数是可以变动的。
所以,才会出现同样是4个字节,但是表示范围不一样的情况!!!
C语言 -- float和int变量存储上的差别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。