浮点数系统详解:IEEE 754标准与计算机中的实数表示
为什么需要浮点数表示?
定点数的局限性
例如32位定点数:
- 整数部分16位:范围-32,768到32,767
- 小数部分16位:精度1/65,536 ≈ 0.000015
- 无法同时表示:普朗克常数(6.626×10⁻³⁴)和阿伏伽德罗常数(6.022×10²³)
IEEE 754浮点数标准
核心设计思想:科学计数法
公式:
单精度(32位)结构
各字段详解:
-
符号位(Sign)
- 0表示正数
- 1表示负数
-
指数域(Exponent)
- 使用移码表示(偏移值127)
- 实际指数 = 指数域值 - 127
- 范围:-126到127
-
尾数域(Fraction)
- 隐含最高位1(规格化数)
- 实际尾数 = 1 + 尾数域值
- 23位提供约7位十进制精度
浮点数分类
| 类型 | 指数域 | 尾数域 | 数值表示 |
|---|---|---|---|
| 规格化数 | 1-254 | 任意 | |
| 非规格化数 | 0 | ≠0 | |
| 零 | 0 | 0 | |
| 无穷大 | 255 | 0 | |
| NaN | 255 | ≠0 | 非数字 |
浮点数转换实战
示例:将-37.625转换为IEEE 754单精度格式
步骤1:转换整数部分