C语言 有关浮点数的总结

来源:互联网 发布:php 笛卡尔乘积 编辑:程序博客网 时间:2024/06/05 18:41


1 浮点数是什么? 如何表示?

浮点数也称做实型数据,形式上就是数学中的小数。  

浮点型数据有两种表达方式: 一种是用数字和小数点表示的,如123.456; 另一种是用指数方式表示,如1.2e-6 或1.2E-6(1.2*10-6)。


2 有浮点常量和浮点型变量

浮点常量就是带小数点的十进制数,浮点型变量用来存储浮点数据, 有两种类型  单精度变量float 和 双精度变量double。

float类型占4bytes, 取值范围 -3.4E38~~3.4E38, 有效数字一般是7~8位十进制数(因为float的尾数位是23bit,转换成十进制就是7~8位);

double类型占8bytes, 取值范围-1.7E308~~ 1.7E308, 有效数字一般是15~16位十进制数;



3 定义方式和输出格式

float x,y;// x,y为单精度实型

double a,b,c;// a,b,c为双精度实型量

 %f              浮点数(包括float和doulbe)   整数部分全部输出,小数部分输出六位,单精度;

%lf       和%f 输出的形式是一样的  , 整数部分全部输出,小数部分输出六位,单精度;

%e(%E)     浮点数指数输出[e-(E-)记数法] 

%.5f     保留小数部分5位有效数字



4 浮点数运算标准IEEE 754

IEEE 754是最广泛使用的二进制浮点数算术标准,被许多CPU与浮点运算器所采用。IEEE 754规定了多种表示浮点数值的方式,下面介绍32位二进制的float浮点类型。它被分为3个部分,分别是符号位S(sign bit)、指数偏差E(exponent bias)和小数部分F(fraction),这三部分都是对应二进制码的。




浮点表示的一般形式为(科学技术法规则):R=(S) * (1 + F) * 2e (R:实数       S:正负符号      F:小数部分     e:指数,不同于指数偏差)。


符号位S:占1位,0代表浮点数是正数,1代表浮点数是负数。

指数偏差E:占8位,范围是0~255,e = E - 127,e为正值表明转换成二进制码后,按科学计数法表达时向左移动了e位, 负值表明向右移动了e位。

小数部分F:占23位,实际上是将浮点数转换成二进制码,再按科学计数法表达,将其小数部分存在F上,由于二进制码按科学计数法表达后,只要值不为0,整数部分就必然为1,所以可以省略整数部分。



原创粉丝点击