我试图理解Python中的unpack函数以及它如何使用格式字符串.
我使用的格式字符串"I"对应于unsigned int(size,4 bytes)作为示例.
根据文档,unpack函数将接受一个字符串并根据格式字符串将其转换为值列表.
http://docs.python.org/2/library/struct.html
所以,我使用输入值作为字符串,"test",这是输出:
>>> import struct
>>> input="test"
>>> l = struct.unpack("I", input)[0]
>>> print l
1953719668
Run Code Online (Sandbox Code Playgroud)
我试图了解输出值是如何从输入中获得的.
>>> from struct import *
>>> calcsize('I')
4
Run Code Online (Sandbox Code Playgroud)
'I'的大小是4个字节.字符串,"test"有4个字符,即4个字节.我尝试将每个字符转换为相应的十六进制ASCII值并以小端顺序存储,但它与上面的输出不匹配.
任何帮助,将不胜感激.
4s如果要按原样解压缩字符串,请使用.
>>> struct.unpack('4s', 'test')[0]
'test'
Run Code Online (Sandbox Code Playgroud)
1953719668派生自:( little endian)
>>> ord('t') + (ord('e') << 8) + (ord('s') << 16) + (ord('t') << 24)
1953719668
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31166 次 |
| 最近记录: |