下面就介绍这个模块中的几个方法。python
struct.pack():个人理解是,python利用 struct模块将字符(好比说 int,long ,unsized int 等)拆成 字节流(用十六进制表示),便于传输。c++
其函数原型为:struct.pack(fmt, v1, v2, ...),fmt表示的是类型,后面的V1 V2..参数有多少,那么对应的类型数量就有多少。函数
>>> import struct >>> x=10 >>> y=20 >>> str=struct.pack('ii',x,y) >>> print str >>> >>> print repr(str) '\n\x00\x00\x00\x14\x00\x00\x00' #小端法
须要说明的是:小端法表示:最高有效字节在最前面,参见 《深刻理解计算机系统P26》spa
用十六进制表示十进制数的时候,一个字节的值域是00~FF。code
为了同c中的结构体交换数据,还要考虑有的c或c++编译器使用了字节对齐,一般是以4个字节为单位的32位系统,故而struct根据本地机器字节顺序转换.能够用格式中的第一个字符来改变对齐方式.定义以下:blog
struct.unpack():个人理解是将被拆成的字节流进行一个从新组装成int类型原型
>>> x1,y1=struct.unpack('ii',str) >>> print 'x1:' ,x1 x1: 10 >>> print 'y1:' ,y1 y1: 20 >>>