2. 浮点型

C标准规定的浮点型有floatdoublelong double,和整数类型一样,既没有规定每种类型占多少字节,也没有规定采用哪种表示形式。浮点数的实现在各种平台上差异很大,有的处理器有浮点运算单元(称为硬件实现),有的处理器没有,只能做整数运算,那么就要用整数运算来模拟浮点运算(称为软件实现),虽然大部分平台的浮点数实现(硬件或软件实现)是遵循IEEE 754的,但仍有很多平台的实现没有遵循IEEE 754。x86处理器通常是有浮点运算单元的,遵循IEEE 754,float型通常是32位,double型通常是64位。

以前我们只用到最简单的浮点数常量,例如3.14,现在看看浮点数常量还有哪些写法。由于浮点数在计算机中的表示是基于科学计数法的,所以浮点数常量也可以写成科学计数法的形式,尾数和指数之间用e或E隔开,例如314e-2表示314×10-2,注意这种表示形式基数是10[23],如果尾数的小数点左边或右边没有数字则表示这一部分为零,例如3.e-1,.987等等。浮点数也可以加一个后缀,例如3.14f、.01L,浮点数的后缀和类型之间的对应关系比较简单,没有后缀的浮点数常量是double型的,有后缀f或F的浮点数常量是float型的,有后缀l或L的浮点数常量是long double型的。



[23] C99引入一种新的十六进制浮点数表示,基数是2,本书不做详细介绍。