将 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
您必须提供结果的字节数和字节顺序(小或大)。
在 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
您必须提供结果的字节数和字节顺序(小或大)。