我通过串行接收单个字节,我知道它们中的每 4 个都是浮点数。 F.e.我收到
b'\x3c'
和 b'\xff'
,我希望它是 b'\x3c\xff'
。
最好的转换方法是什么?
您可以像使用字符串一样使用 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])
如果您只有一个字节要转换,则此方法不起作用