IEEE754 单精度浮点数
关于IEEE754 单精度浮点数的定义,转换与数值范围
§§ IEEE 754
IEEE754 将数字表示成形如
的形式.
其中,
- 符号位s由一位二进制表示,1表示负数,0表示正数
- 有效数(尾数)M 由23位二进制表示
- 指数E由8位二进制移码表示
数据格式
31 22 0
|________________________________________|
|s| c | f |
------------------------------------------
| |
30 23
尾数的正规化(规约形式):
IEEE754 规定位数应该化为 1.f 的形式, 第一位由于必定为1, 略去不计。
§§
栗子-3125.97
符号位
负数符号位取1
二进制转换精确度
, 十进制转换2进制时小数应当记录7位。
正规化尾数
最左侧的1省略不记,不足28位右侧补0, 那么 -3125.97 的规约形式尾数部分为
100 0011 0101 1111 1000 0000
指数:
11 转化为8位2进制移码。
单精度浮点数表示
Z = 1100 0101 0100 0011 0101 1111 1000 0000
其中
s = 1
c = 1000 1010
f = 100 0011 0101 1111 1000 0000
§§ 表示值
| Name | c | f | Z |
|---|---|---|---|
| 规约形式 | f 任意 | ||
| 非规约形式 | f 任意 | ||
| 无穷 | |||
| 不存在 |
Notes:
- 8位移码表示的指数中,偏移B=127
- c = e+B , 其中c为二进制移码表示的指数,e为二进制原码表示的指数
- 后两种特殊情况中,c=2B+1 即c=255, 取全1
- 非规约形式是为了表示绝对值非常接近0的数,非规约形式由于实际指数固定,在其表示范围内精度保持不变。
§§ 范围
尾数及其表示的有效数
23位2进制尾数表示范围是
规约尾数表示的的有效数范围是
指数
| 实际指数e | 偏移指数c |
|---|---|
| [-126,127] | c = e+127 |
| e = -126 | c = 0 |
规约的实际指数范围:
[-126,127]
规约的偏移指数范围:
c = e + 127, 即 [1,254]
非规约的指数:
实际指数为 -126, 偏移指数记0
绝对值最大的归约数:
绝对值最小的规约数:
绝对值最大的非规约数:
绝对值最小的非规约数: