C语言之实型数据类型
实型数据类型指的就是浮点数或实数
1、实型数据类型的分类
类型说明符
比特数(字节数)
有效数字
数的范围
float
32(4)
6~7
-10的38次方~10的38次方
double
64(8)
15~16
-10的308次方~10的308次方
由以上内容可以看出:(1)实型数据没有办法精确的表示所有数字,因此表示的范围大
(2)相邻两个数据的距离是不等距的
(3)每一种实型数据都有自己的有效位数和精度
2、实型数据的表示
1) 十进制数形式由数码0~ 9和小数点组成。 例如:0.0、25.0、5.789、0.13、5.0、300.、-267.8230 等均为合法的实数。注意,必须有小数点。2) 指数形式由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为: a E n(a为十进制数,n为十进制整数)其值为 a*10n。如:2.1E5 (等于2.1*105) 3.7E-2 (等于3.7*10-2) 0.5E7 (等于0.5*107) -2.8E-2 (等于-2.8*10-2)以下不是合法的实数:345 (无小数点)E7 (阶码标志E之前无数字)-5 (无阶码标志)53.-E3 (负号位置不对)2.7E (无阶码)
3、C语言中float和double数据在内存中的表示
前面的符号位很容易判断为0或者是1,指数部分称之为阶码,这个阶码部分是由偏置值(127或1111111)和阶码真值相加得到的,阶码真值符合IEEE-75标准,这个标准规定了是这个数一定能写成1.--*2的多少次方的形式,尾数部分的存储是原码的存储。