Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15530920
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类: Python/Ruby

2008-12-16 18:38:51

>>> struct.pack( '=ii', 123, 456)
'{\x00\x00\x00\xc8\x01\x00\x00'
>>> struct.unpack('=ii','{\x00\x00\x00\xc8\x01\x00\x00')
(123, 456)
可以使用
>>> help(struct)
看到,struct不但可以指定endian,还可以指定alignment,进而实现linux里的__attribute__ ((packed))的功能[luther.gliethttp]
>>> struct.calcsize('cBi')//可以进行存储空间优化
8
>>> struct.calcsize('=cBi') //表示使用__attribute__ ((packed)存储
6
>>> struct.pack('cBi', 'a', 8, 10)
'a\x08\x00\x00\n\x00\x00\x00'
>>> struct.pack('=cBi', 'a', 8, 10)
'a\x08\n\x00\x00\x00'
>>> struct.pack('=cbi4s', 'a', 8, 10, 'bcde') //s字符串前面必须加上字符串长度,这里为4表示是4个字节的字符串
'a\x08\n\x00\x00\x00bcde'
>>> struct.unpack('=cbi4s', 'a\x08\n\x00\x00\x00bcde')
('a', 8, 10, 'bcde')
阅读(2406) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~