使用struct.pack

时间:2016-11-21 14:09:20

标签: python struct int unsigned

我的代码如下所示:

import struct

str = "AAAAAAA"
len = len(str)+32

package = struct.pack("!H",len)
print repr(package)

结果是:

"\x00'"

当我使用len = len(str)时 结果是\x00\x07

为什么当len大于32时,它不起作用?

1 个答案:

答案 0 :(得分:1)

您误解了"\x00'"结果。它是字符串十六进制字符代码值和常规可打印ASCII字符的混合。如果它纯粹以十六进制字符代码显示,则为"\x00x\x27"

十进制的\x27是整数39,它是len(str)+32的结果。它也是'(单引号)字符的字符代码,它是repr()正在显示的内容的一部分。