python hex转flaot

Posted blueoapple

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python hex转flaot相关的知识,希望对你有一定的参考价值。

在使用树莓派 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的主要内容,如果未能解决你的问题,请参考以下文章

Python-十六进制与字符串转换脚本

Python-十六进制与字符串转换脚本

python中十进制转成十六进制代码

Python代码阅读(第41篇):矩阵转置

Qt uchar *转 Hex的QString方法代码

hex转mif文件 verilog