float
IEEE754 浮点数格式
f = (-1)^s _ M _ 2^E
s 代表符号位,M 代表尾数,E 代表指数
第一步
1 | // 浮点数举例 |
第二步
1 | 1001.101 = (-1)^0 * 1.001101 * 2^3 |
| 符号位 | 指数位(8 位) | 尾数位(23 位) |
|---|---|---|
| 0 | 10000010 | 0011010000000000000000 |
double
IEEE 754 双精度(double)浮点数格式
| 名称 | 位数 |
|---|---|
| 符号位 | 1 |
| 指数位 | 11 |
| 尾数位 | 52 |
| 合计 | 64 |
第一步:
正数: 符号位=0
第二步:
转换二进制
1 | 9.625 = 1001.101 = 1.001101 * 2^3 |
第三步:
指数(带偏移)
- 实际指数:3
- double 的偏移是: 1023
1 | 存储指数 = 1023 + 3 = 1026 |
第四步:
尾数
标准化后的是 1.001101
->尾数位只要去掉 1. , 补齐 52 位,
1 | 0011010000000000000000000000000000000000000000000000 |
第五步:拼接完整的 64 位
1 | 符号位:0 |
分为八组
1 | 01000000 00100011 01000000 00000000 00000000 00000000 00000000 00000000 |