Chinaunix首页 | 论坛 | 博客
  • 博客访问: 963532
  • 博文数量: 173
  • 博客积分: 3436
  • 博客等级: 中校
  • 技术积分: 1886
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-07 09:29
文章分类

全部博文(173)

文章存档

2016年(6)

2015年(10)

2014年(14)

2013年(8)

2012年(36)

2011年(63)

2010年(19)

2009年(17)

分类: C/C++

2012-05-15 09:30:10

每次看到人家的十六进制输出,对齐的很好,ff就显示了,而我的总是0xffffffff。
如果是
"%02x",是以0补齐2位数,如果超过2位就显示实际的数;
"%hhx" 是只输出2位数,即便超了,也只显示低两位;
 
因此有了"%02hhx"

点击(此处)折叠或打开

  1. void hexdump(char *buf, int num)
  2. {
  3. . int i;

  4. . for(i = 0; i < num; i++) {
  5. . . printf("%02hhx\t", buf[i]);
  6. . . if ((i+1)%8 == 0) {
  7. . . . printf("\n");
  8. . . }
  9. . }
  10. . printf("\n");
  11. }

阅读(24100) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~