标签:struct python float hex 转化 unpack python2
我们在从对于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)
标签:struct,python,float,hex,转化,unpack,python2 来源: https://blog.csdn.net/u010404245/article/details/119177408
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。