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);
}




