将 4 字节 HEX 转换为单个字节

Convert 4 byte HEX to individual bytes

在 python 中,我需要从用户那里获取一个值并通过串行发送。它最多为 4 个字节的值,假设该值为 123456789。我可以毫无问题地转换为 HEX,这会给我“0x75bcd15”,但我需要将其作为 4 个单独的字节发送 (b'\x07\x5b\xcd\x15') .

我用一个 2 字节的位移位完成了这个`

stake = int(single_game_stake_entry.get())

stakeMSB = (bytes([stake >> 8]))
stakeLSB = (bytes([stake & 0xFF]))`

如果可能的话,我似乎无法将其扩展为 4 个字节。我试过 bytes、bytearray 但我无法拆分值。

提前致谢

一个简单的方法是使用 int.to_bytes() 方法。 您可以通过两种不同的方式调用该方法,如下所示。

stake = 123456789
print(int.to_bytes(stake, 4, 'big')) # Call the method of the int class
print(stake.to_bytes(4, 'little')) # Call the method directly on the int to convert

您必须提供结果的字节数和字节顺序(小或大)。