有人可以向我解释将十进制格式(如2+(2/7))转换为IEEE 754浮点表示的步骤吗?谢谢!如何将2+(2/7)转换为IEEE 754浮点
0
A
回答
1
首先,2 + 2/7
不是大多数人称之为“十进制格式”的东西。 “十进制格式”会更普遍被用来表示一个数字,如:
2.285714285714285714285714285714285714285714...
即使...
有点朝三暮四。更常见的是,这个数字将被截断或四舍五入到一定数量的小数位数:
2.2857142857142857
当然,在这一点上,它不再是正好等于2 + 2/7
,但“足够接近”对于大多数的用途。
我们做类似的操作将一个数字转换为IEEE-754格式;代替基体10的,我们首先在基体2写入数:
10.010010010010010010010010010010010010010010010010010010010010...
接下来我们“正常化”的个数,通过在形式2^e * 1.xxx...
写入它的一些指数e
(具体地,前导的数位位置我们的数位):
2^1 * 1.0010010010010010010010010010010010010010010010010010010010010...
在这一点上,我们必须选择一个特定的IEEE-754格式的,因为我们需要知道有多少位保持周围。我们选择具有24位有效位数的“单精度”。我们圆重复二进制数为24位:
2^1 * 1.00100100100100100100100 10010010010010010010010010010010010010...
24 leading bits bits to be rounded away
因为尾随位四舍五入比1000...
越大,轮数最多:
2^1 * 1.00100100100100100100101
现在,如何做其实这个值以IEEE-754格式编码?单精度格式中已处于领先signbit(零,这是因为数是正的),之后是包含二进制值127 + e
八位,后跟该有效的小数部分:
0 10000000 00100100100100100100101
s exponent fraction of significand
在十六进制这给了0x40124925
。
相关问题
- 1. 使用IEEE 754将浮点数转换为基数10使用IEEE 754
- 2. 将二进制32位IEEE-754浮点数转换为.net
- 3. 将pre-IEEE-754 C++浮点数转换为C#中的
- 4. 在C#中将十六进制转换为IEEE 754浮点数
- 5. IEEE 754浮点表示法
- 6. 如何将IEEE 754单精度浮点格式转换为小数?
- 7. 如何将十六进制转换为IEEE 754 32位浮点C++
- 8. 转换为IEEE 754单精度浮点格式帮助
- 9. 将十六进制转换为IEEE 754
- 10. 转换IEEE 754浮点数以十六进制字符串
- 11. 转换IEEE 754浮点数与C诅咒 - printf的
- 12. IEEE-754浮点数舍入机制
- 13. IEEE-754单精度浮点数mips
- 14. ,64位和80位浮点IEEE-754?
- 15. 如何输出IEEE-754格式的整数作为浮点数
- 16. 的Postgres从包含浮动BYTEA(IEEE 754)真实(个float4)转换
- 17. 将十进制转换为IEEE-754格式
- 18. 将二进制字符串转换为IEEE-754单精度 - Python
- 19. 将IEEE 754 double转换为字符串的算法?
- 20. Ruby将64位IEEE 754十六进制转换为双精度
- 21. matlab中的32位十六进制到32位浮点(IEEE 754)转换
- 22. IEEE 754浮点 - 为什么这个工作?
- 23. 将c#float转换为IEEE单精度浮点字节
- 24. 将IEEE浮点十六进制转换为十进制?
- 25. 将C中的浮点数转换为IEEE标准
- 26. 将32位浮点数转换为IEEE 80位
- 27. Java浮点基元有没有任何IEEE 754标准实现?
- 28. 如何将IEEE-11073 16位SFLOAT转换为Java中的简单浮点型?
- 29. 单精度IEEE 754浮点数的格式化
- 30. IEEE 754浮点舍入模式硬件/软件
你问关于汇编代码中的算术表达式求值器,还是什么? – 2011-04-21 23:46:24
算术表达式 – 2011-04-21 23:50:55
你的意思不仅仅是“2.0+(2.0/7.0)”?你想在IEEE754中使用这些数字的二进制表示形式,以及关于加法和除法如何工作的描述,或者其他什么? – 2011-04-22 16:56:35