微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决将 4 字节 HEX 转换为单个字节

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

我通过位移位用 2 字节完成了此操作 `

stake = int(single_game_stake_entry.get())

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

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

提前致谢

解决方法

一个简单的方法是使用 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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。