一个简单的方法是使用int.to_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个字节。我尝试过字节、字节数组,但无法拆分值。
提前感谢
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
您必须提供结果的字节数和字节的顺序(小或大(。