gpt4 book ai didi

python - 将 int 转换为 2 个字节的 Big-Endian

转载 作者:行者123 更新时间:2023-12-02 17:31:57 26 4
gpt4 key购买 nike

我在将 int 转换为 Big-Endian 编码的 2 个十六进制字节时遇到问题。

例如:

import struct

a = 1234
struct.pack('>I', a)

我收到的是:

'\x00\x00\x04\xd2'

我希望收到的是(2 个字节的十六进制):

'0x04', '0xd2'

我不知道如何得到这个结果,我尝试了不同的切割和移动技术,以便从每 4 个整数中得到我想要的结果,但有时 0 会干扰正确的结果。

接收大端编码整数的 2 字节十六进制值的正确方法是什么?

谢谢

最佳答案

使用>H format string ;Python 2 中的示例:

>>> import struct
>>> a = 1234
>>> s = struct.pack('>H', a)

然后你打开它;

>>> first, second = struct.unpack('>BB', s)
>>> first
4
>>> second
210

如果您使用的是 Python 3,则可以使用 to_bytes:

In [1]: a = 1234

In [2]: a.to_bytes(2, 'big')
Out[2]: b'\x04\xd2'

In [3]: b = bytearray(a.to_bytes(2, 'big'))

In [4]: b[0]
Out[4]: 4

In [5]: b[1]
Out[5]: 210

关于python - 将 int 转换为 2 个字节的 Big-Endian,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31904047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com