码迷,mamicode.com
首页 > 编程语言 > 详细

python hex转flaot

时间:2020-06-13 19:33:12      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:ack   大小   love   rtu   mat   偶数   pos   mod   return   

在使用树莓派 modbus-tk 读取寄存器值后,得到的4byte值存为了元组,想将该数据转化为float,习惯了c的用法,转到python时,数据转换这一块一头雾水,经过多次尝试最终实现。记录一下: 

format用法:   python格式化输出之format用法

 
hex转float函数,hex_value 为偶数格字符串 如:‘41ae0837‘
def Hex2Float(hex_value):
  return struct.unpack(‘!f‘,hex_value.decode(‘hex‘))[0]
modbus-rtu得到的2个寄存器的值为:
o2 = (2103,16814)
 
使用format将int类型转换为字符串:
format_ss = {:04x}

ssa = format_ss.format(o2[1]) + format_ss.format(o2[0])
注意大小端
 
ssa =  ‘41ae0837‘
 
将得到的字符串转为float
sfloat = Hex2Float(ssa)
print 氧气浓度:,sfloat

氧气浓度: 21.7540111542

 

python hex转flaot

标签:ack   大小   love   rtu   mat   偶数   pos   mod   return   

原文地址:https://www.cnblogs.com/blueoapple/p/13121201.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!