关于python中hex转float的问题

2021/7/28 14:05:50

本文主要是介绍关于python中hex转float的问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

我们在从对于python中将hex转化为float的问题。对于python3和python2的操作是不同的。
例如a=[0x45,0xaf,0xb9,0xdd]转化为float型数据为 5623.23

使用python3将hex转化为float

进行转化很简单:我们可以使用struct模块

import struct
s=struct.unpack(">f",bytes(a))[0]

执行结果
在这里插入图片描述
其中struct.unpack返回的是一个元组

使用python2将hex转化为float

用python2转化的话会比python3麻烦很多,如果按照上面的写法,python2会报错
struct.error: unpack requires a string argument of length 4
在这里插入图片描述
因此我们要使用另外一个模块binascii模块:

import struct
import binascii
a=[0x45,0xaf,0xb9,0xdd] 
d=''
for i in a:
	d=d+"%02X"%i	 #将hex转化为hex字符串
s=struct.unpack('>f',binascii.unhexlify(d))[0]  

在这里插入图片描述

格式话输出2位小数

要指定小数位数,可以使用round函数

s=5623.23291015625
re_f=round(s,2)

在这里插入图片描述



这篇关于关于python中hex转float的问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程