十六进制转换浮动 [英] Convert hex to float

查看:172
本文介绍了十六进制转换浮动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何以下十六进制字符串转换为浮动(单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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆