【发布时间】:2019-07-30 08:38:50
【问题描述】:
我通过串行接收单个字节,我知道每 4 个字节都是一个浮点数。 F.e.我收到b'\x3c' 和b'\xff',我希望它是b'\x3c\xff'。
转换它的最佳方法是什么?
【问题讨论】:
标签: python arrays python-3.x type-conversion byte
我通过串行接收单个字节,我知道每 4 个字节都是一个浮点数。 F.e.我收到b'\x3c' 和b'\xff',我希望它是b'\x3c\xff'。
转换它的最佳方法是什么?
【问题讨论】:
标签: python arrays python-3.x type-conversion byte
您可以像使用字符串一样使用 join()。
byte_1 = b'\x3c'
byte_2 = b'\xff'
joined_bytes = b''.join([byte_1, byte_2]) #b'\x3c\xff'
您可以在struct 模块中使用它来获取解码后的浮点数,注意它会返回一个元组,即使它只有一个元素。
import struct
byte_1 = b'\x3c'
byte_2 = b'\xff'
byte_3 = b'\x20'
byte_4 = b'\xff'
joined_bytes = b''.join([byte_1, byte_2, byte_3, byte_4])
result = struct.unpack('f', joined_bytes)
print(result[0])
【讨论】: