十六进制转换浮动 [英] Convert hex to float
本文介绍了十六进制转换浮动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何以下十六进制字符串转换为浮动(单precision 32位)在Python?
41973333 - > 1.88999996185302734375E141995C29 - > 1.91700000762939453125E1470FC614 - > 3.6806078125E4
解决方案
>>>进口结构
>>> struct.unpack('!F','41973333'.de code('十六进制'))[0]
18.899999618530273
>>> struct.unpack('!F','41995C29'.de code('十六进制'))[0]
19.170000076293945
>>> struct.unpack('!F','470FC614'.de code('十六进制'))[0]
36806.078125
更新:看到如何做到这一点在Python 3注释
How to convert the following hex string to float (single precision 32-bit) in Python?
"41973333" -> 1.88999996185302734375E1
"41995C29" -> 1.91700000762939453125E1
"470FC614" -> 3.6806078125E4
解决方案
>>> import struct
>>> struct.unpack('!f', '41973333'.decode('hex'))[0]
18.899999618530273
>>> struct.unpack('!f', '41995C29'.decode('hex'))[0]
19.170000076293945
>>> struct.unpack('!f', '470FC614'.decode('hex'))[0]
36806.078125
Update: see comment on how to do this in Python 3.
这篇关于十六进制转换浮动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文