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嗎? –