我使用struct
在python中将long或int转换为bytearrayba = struct.pack(' H',12)
输出:' \ x0c \ x00' 长度为2个字节
但如果我转换 ba = struct.pack(' H',12345)
输出:' 90' 我需要编码为十六进制以获得所需的输出 ba.encode('十六进制') 在这种情况下输出是 输出:3930 和长度是4
为什么会发生这种情况,它应该在没有编码的情况下给出2字节的结果?
我的用例是我需要将long转换为所需bytearray大小的bytearray。
答案 0 :(得分:0)
'90'
是两个字节。第一个字节是0x39,第二个字节是0x30。
>>> hex(12345)
'0x3039'
TL; DR:您收到了正确的结果。