浮点型数据

所有的原创都是本屌一字一字的码出来的,转载时请带上这句话 谢谢,http://blog.csdn.net/yangdong_123

C语言中的浮点数就是实数(分为有理数和无理数),浮点数有两种表现形式: 十进制小数形式和指数形式,规范化指数形式就是小数点有且只有一位数字。例如3.1415926E3=3141.5926。

(1)浮点数在内存中的存放形式

一个浮点数剧一般在内存中占4个字节,存储的时候系统把一个浮点型数据分成小数部分和指数部分,分别存放,直属部分采用规范化指数形式入下图所示:

浮点型数据_第1张图片

这四个字节中,究竟多少来表示指数部分,多少来表示小数部分C语言并没有具体规定,而是由编译系统自定,不少编译系统以24位表示小数部分(包括符号),以8位表示指数部分,小数部分占的为数越多,数的有效数字愈多,精度也愈高,指数部分站的位越多,则能表示的数值范围越大。

(2)浮点型变量的分类

浮点型数据_第2张图片

浮点型变量飞卫单精度(float)(32位),双精度(double)(64位)和长双精度(long double)(128位)3类。ANSI C并未具体规定每种类型数据的长度,精度和数值范围,有的系统将double所增加的32位全部用来存放小数部分,这样能增加精度,有的系统则用来存放指数部分,用来增加范围。

(3) 浮点型常量的类型

C语言编译系统将浮点型常量作为双精度来处理,例如f = 2.45678*123.32 系统先把这两个数都当做双精度,然后做相乘运算,得到的乘积也是一个双精度的数,最后取前7位赋给变量f,这样做可以使结果更精确,但是运算速度降低了,如果在每个数字后面加上 f/F 这样编译系统就会按照32位来处理和计算,提高速度。

你可能感兴趣的:(C语言学习之路,c语言)