ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

关于python中hex转float的问题

2021-07-28 14:03:49  阅读:409  来源: 互联网

标签: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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有