我的代码如下所示:
import struct
str = "AAAAAAA"
len = len(str)+32
package = struct.pack("!H",len)
print repr(package)
结果是:
"\x00'"
当我使用len = len(str)
时
结果是\x00\x07
为什么当len
大于32时,它不起作用?
答案 0 :(得分:1)
您误解了"\x00'"
结果。它是字符串十六进制字符代码值和常规可打印ASCII字符的混合。如果它纯粹以十六进制字符代码显示,则为"\x00x\x27"
。
十进制的\x27
是整数39
,它是len(str)+32
的结果。它也是'
(单引号)字符的字符代码,它是repr()
正在显示的内容的一部分。