我在将int转换为Big-Endian编码的2个十六进制字节时遇到了问题。
例如:
import struct
a = 1234
struct.pack('>I', a)
我收到的是:
'\x00\x00\x04\xd2'
我希望收到的是(2字节十六进制):
'0x04', '0xd2'
我不知道如何得到这个结果,我尝试了不同的切割和移动技术,以便从每4个数字整数得到我希望的结果,但有时0会干扰正确的结果。
接收big-endian编码整数的这个2字节十六进制值的正确方法是什么?
谢谢
答案 0 :(得分:3)
使用<li><a href="#">Rules for graphic designer from photographer</a></li>
format string;
Python 2中的示例:
>H
然后你打开包装;
>>> import struct
>>> a = 1234
>>> s = struct.pack('>H', a)
如果您使用的是Python 3,则可以使用>>> first, second = struct.unpack('>BB', s)
>>> first
4
>>> second
210
:
to_bytes