当我在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
归档时间: |
|
查看次数: |
1956 次 |
最近记录: |