printf 十六进制格式化输出 2字节对齐

来源:互联网 发布:引物分析软件 编辑:程序博客网 时间:2024/06/05 15:18
每次看到人家的十六进制输出,对齐的很好,ff就显示了,而我的总是0xffffffff。
如果是
"%02x",是以0补齐2位数,如果超过2位就显示实际的数;
"%hhx" 是只输出2位数,即便超了,也只显示低两位;
 
因此有了"%02hhx"

点击(此处)折叠或打开

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

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

原文地址:http://blog.chinaunix.net/uid-20801390-id-3207987.html

kangear注:

在u-boot中是这样用的:

printf("%02hX\t");