您的位置:首页 > 其它

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

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

因此有了"%02hhx"

点击(此处)折叠或打开

void hexdump(char *buf, int num)

{

. int i;

. for(i = 0; i < num; i++) {

. . printf("%02hhx\t", buf[i]);

. . if ((i+1)%8 == 0) {

. . . printf("\n");

. . }

. }

. printf("\n");

}

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

kangear注:

在u-boot中是这样用的:

printf("%02hX\t");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: