printf按8进制、16进制输出
添加时间:2013-6-5 点击量:
每次看到人家的十六进制输出,对齐的很好,ff就显示了,而我的老是0 xffffffff。
若是是
%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);
}
真正的心灵世界会告诉你根本看不见的东西,这东西需要你付出思想和灵魂的劳动去获取,然后它会照亮你的生命,永远照亮你的生命。——王安忆《小说家的十三堂课》
每次看到人家的十六进制输出,对齐的很好,ff就显示了,而我的老是0 xffffffff。
若是是
%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);
}