大连网站建设设计公司哪家好培训学校怎么招生
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省
浮点型数据
浮点型数据是用来表示具有小数点的实数的,为什么在C中把实数称为浮点数呢?在C语言中,实数是以指数正式存放在在储单元中的。一个实数表示为指数可以有不止一种形式。
小数点的位置是可以在数字之间、之前或之后(加)浮动的,只要在小数点位置浮动的同时改变指数的值,就可以保证它的值不会改变,由于小数点位置可以浮动,所以实数的指数形式称为浮点数
浮点数类型包括float(单精度浮点型)、double(双精度浮点型)、long double(长双精度浮点型)
float型(单精度浮点型)
编译系统为每一个float型变量分配4个字节,数值以规范化的二进制数指数形式存放在存储单元中,在存储时,系统将实型数据分成小数部分和指数部分两个部分,分别存放。小数部分的小数点前面的数为0。如3.14159在内存中的存放可以用图表示
上图是用十进制数来示意的,实际上在计算机中是用二进制数来表示小数部分以及用2的幂次来表示指数部分的。在4个字节(32位)中,究竟用多少位来表示小数部分,多少位来表示指数部分,C标准并无具体规定,由各C语言编译系统自定。有的C语言编译系统以24位表示小数部分(包括符号),以8位表示指数部分(包括指数的符号)。由于用二进制形式表示一个实数以及存储单元的长度是有限的,因此不可能得到完全精确的值,只能存储成有限的精确度。小数部分占的位( bit )数愈多,数的有效数字愈多,精度也就愈高。指数部分占的位数愈多,则能表示的数值范围愈大。float型数据能得到6位有效数字。
double型(双精度浮点型)
为了扩大能表示的数值范围,用8个字节存储一个double型数据,可以得到15位有效数字,在C语言中进行浮点数的算术运算时,将float型数据都自动转换为double型,然后进行运算。
long double型(长双精度)型
不同的编译系统对long double型的处理方法不同,Turbo C对long double型分配16个字节。而Visual C++则对long double型和double型一样处理,分配8个字节。