码迷,mamicode.com
首页 > 编程语言 > 详细

C语言 -- float和int变量存储上的差别

时间:2016-12-02 21:21:48      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:printf   字节   存储   print   std   之间   ret   开始   无限   

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

#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变量存储上的差别

标签:printf   字节   存储   print   std   之间   ret   开始   无限   

原文地址:http://www.cnblogs.com/zhq-blog/p/6126988.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!