2024-09-24 06:22:11 发布
网友
我有一个从硬件读取并返回的库函数
value = readregister(registerindex,numbytes)
其中value是python列表。在
value
如果numbytes为4,则返回的完整数字将在中返回
numbytes
寄存器中的实际值是浮点数。 那么,如何将这个4个元素的列表值转换为python浮点数呢?在
您可能正在寻找struct.unpack。在
首先需要将四个字节的列表转换为Python字节字符串,然后将该字符串转换为浮点值。在
假设您有列表value = [0, 0, 192, 63]。首先转换为字节字符串:
value = [0, 0, 192, 63]
vstr = ''.join([chr(k) for k in slist]) #chr converts the integer into the corresponding byte
然后,作为dyoo points out,您可以使用struct.unpack将字节字符串转换为浮点数:
在这个例子中,f是1.5。在
f
你需要知道的一件事是你的硬件设备的终结性。如果在您进行解包的平台上,使用“f”作为格式字符串到struct.unpack将给出错误的答案。在格式字符串前面加上<,对于小端设备,>对于大端设备:
struct.unpack
<
>
fle = struct.unpack("<f", ''.join([chr(k) for k in value]) #for little-endian HW fbe = struct.unpack(">f", ''.join([chr(k) for k in value]) #for big-endian HW
您可能正在寻找struct.unpack。在
首先需要将四个字节的列表转换为Python字节字符串,然后将该字符串转换为浮点值。在
假设您有列表
value = [0, 0, 192, 63]
。首先转换为字节字符串:然后,作为dyoo points out,您可以使用struct.unpack将字节字符串转换为浮点数:
^{pr2}$在这个例子中,
f
是1.5。在你需要知道的一件事是你的硬件设备的终结性。如果在您进行解包的平台上,使用“f”作为格式字符串到
struct.unpack
将给出错误的答案。在格式字符串前面加上<
,对于小端设备,>
对于大端设备:相关问题 更多 >
编程相关推荐