C实型
- 实数
- 指数形式
- 不合法:12e4.5 、e4
- 实型变量
- float:单精度型;4字节
- double:双精度型
- long double:长双精度型
- 实型数据存放形式:二进制
- 规范化二进制指数形式:+/-(1.m)*2^e
- 以单精度浮点为例
- 32位:符号位
- 31到24位:偏移阶码;指数 e+偏移值127,再转为二进制
- 23到1位:m
//将 100.625的二进制存储过程
step1 1100100.101 (二进制)
step2 1.100100101 *2 ^6 (规范化二进制指数)
step3 m = 10010010100000000000000 (小数部分以定点小数存储,补足23位)
step4 偏移阶码:6+127 = 1000101
结果:0100010110010010100000000000000
实型变量的存储误差
- 由于用有限的存储单元存储,因此能提供的有效数字总是有限的,超出被舍去
实型常量
- 按双精度处理
- 举例:声明一个单精度 float f
f = 2.45678 * 4523.65,如果用单精度实型变量f接收,此时会计算完截取7位给实型变量 f,虽然精确,但是运算速度低。所以建议 f= 1.65f,这样系统就会按单精度处理