1.概述
在IEEE 754 关于浮点数的二进制格式表示的规则,如下表所列:
| 类型 | 存储位数 | 偏移值 | ||||
|---|---|---|---|---|---|---|
| 符号位 S | 阶码 E | 尾数 M | 总位数 | 16进制i | 10进制 | |
| 单精度 | 1 | 8 | 23 | 32 | 0x7F | 127 |
| 双精度 | 1 | 11 | 52 | 64 | 0x3FF | 1023 |
| 临时实数 | 1 | 15 | 64 | 80 | 0x3FFF | 16383 |
特殊情况:
对于阶码为0或者255时,IEEE有特殊的规定:
1.如果E是0并且M是0,这个数+0(和符号位相关);
2.如果E=2-1并且M是0,这个数是正负无穷大(和符号相关);
3.如果E=2-1并且M不是0,这个数表示为不是一个数(NaN)。
2.如果E=2-1并且M是0,这个数是正负无穷大(和符号相关);
3.如果E=2-1并且M不是0,这个数表示为不是一个数(NaN)。
2.算法
Sttep1. 进制转换。
整数部分除以2,小数部分乘以2
Step2: 格式化成科学记数法
1.f
Step3: 计算阶码
阶码计算时,要注意左右移动的区别,左移+,右移-
Step4: 补充符号位
Step5: 组数
按概述的部分,组合符号位,阶码,尾数
3. 示例
100.25的2进制表示
1.转换 (100.25)10 = (1100100.01)2
2.格式化 1.10010001*2e6
3.阶码,e=6,6+127=133,也就是二进制的10000101
4.符号位 0
5 符号位:0,阶码:00000110;尾数:1001 000 10000 0000 0000 000
因此,合并后得到100.25的单精度二进制表示为:0 1000 0101 1001 0001 0000 0000 0000 000
1300

被折叠的 条评论
为什么被折叠?



