Iam工作在python 3.6 我从串行通信接收字符串'3F8E353F'。这是一个浮点数1.111。如何将此字符串转换为浮点数? 谢谢十六进制字符串与浮点数浮动
回答
啊是的。由于这是32位,把它解压到第一那么int
:
x='3F8E353F'
struct.unpack('f',struct.pack('i',int(x,16)))
在我的系统这给:
>>> x='3F8E353F'
>>> struct.unpack('f',struct.pack('i',int(x,16)))
(1.1109999418258667,)
>>>
非常接近预期值。但是,这可以根据系统中字节的'字节顺序'给出'后向'结果。一些系统首先存储它们的字节最低有效字节,其他最重要字节首先存储。请参阅this reference page以根据字节顺序对描述符进行格式化。
获得1.111 - 即期望:''0x1.1c6a7ef9db22dp + 0''作为输入... –
与float.fromhex('3F8E353F')我得到1066284351.0而不是1.111。 –
如果内存服务struct.unpack文档告诉如何克服这一点。我现在也看了,已经有一段时间了,因为我看到这个错误 – TomServo
- 1. 浮点十六进制字符串返回浮动
- 2. 十六进制浮点数
- 3. 将十六进制字符串转换为IEEE 754浮点数
- 4. 转换IEEE 754浮点数以十六进制字符串
- 5. Lua - 十六进制浮点数
- 6. 从十六进制到浮点数 - Javascript
- 7. 将浮点数向量转换为十六进制/二进制字符串
- 8. 十六进制十进制浮点数Python
- 9. 将二进制浮点数转换为十六进制浮点数
- 10. 十六进制浮点舍入
- 11. Java浮点到IEEE-754十六进制?
- 12. 十进制浮点数
- 13. 如何将十六进制字符串转换为Java中的浮点数?
- 14. 在java中的32位十六进制字符串到浮点数
- 15. 如何将十六进制字符串转换为单精度浮点数
- 16. 以十进制和浮点格式打印十六进制值
- 17. 将十进制值转换为32位浮点十六进制
- 18. 将IEEE浮点十六进制转换为十进制?
- 19. python字符串与十六进制转义十六进制值
- 20. 从字节数组中打印十六进制浮点常量
- 21. 浮点数字 - SAS十进制问题
- 22. Sitecore Profile.Score(字符串,浮点数)存在十进制值问题
- 23. 字符串将不允许浮点/十进制数
- 24. Mongodb解析字符串为十进制/浮点数
- 25. 浮点十六进制八进制二进制
- 26. 十六进制字符串到十六进制整数
- 27. Javascript - 十进制字符串的十六进制字符串
- 28. 十进制浮点系统。
- 29. 为什么十六进制浮点数需要指定指数?
- 30. Python如何将十六进制浮点数转换为十进制
你尝试过什么吗? – Hima
你能展示这两个数字是如何相等的吗? '1.111.hex()'返回'0x1.1c6a7ef9db22dp + 0' – rassar
你能描述一下输入值如何等于1.111吗? –