,还要考虑有的c或c++编译器使用了字节对齐,通常是以4个字节为单位的32位系统,故而struct根据本地机器字节顺序转换.可以用格式中的第一个字符来改变对齐方式.定义如下:
?CharacterByte...6 c = 20
?7 d = 42.56
?8
?9 #打包
?10 binStr = struct.pack("5s6sif", a, b, c, d)11 printlen(binStr)12 binStr2...= struct.pack("i", c)13
?14 #解包
?15 e, f, g, h = struct.unpack("5s6sif", binStr)16 printe, f, g, h17...?18 #注意unpack返回的是tuple,如果不按规定格式书写,则返回值将改变类型
?19 i, = struct.unpack("i", c)20 printi21 i = struct.unpack...("i", c)22 printi23
?24 #计算转换字节长度
?25 print struct.calcsize("5s6sif")