当我在python的struct模块中将数字更改为十六进制时,
>>> import struct
>>> struct.pack("i",89)
'Y\x00\x00\x00'
>>> struct.pack("i",890)
'z\x03\x00\x00'
>>> struct.pack("i",1890)
'b\x07\x00\x00'
Run Code Online (Sandbox Code Playgroud)
输出中"Y,z,b"的含义是什么?
你没有转换成十六进制.您将整数打包为二进制数据...在本例中为little-endian二进制数据.第一个字符只是原始字节的相应ASCII字符; 例如89是Y,122是z,98是b.
pack产生'\x59\x00\x00\x00'对于0x00000059; '\x59'是'Y'.'\x7a\x03\x00\x00'对于0x0000037a; '\x7a'是'z'.'\x62\x07\x00\x00'对于0x00000762; '\x62'是'b'.请参阅以下ASCII表.
http://www.asciitable.com/index/asciifull.gif