📄 hexdump.c
字号:
#include "VxWorks.h"
#include "stdioLib.h"
#include "strLib.h"
void hexDump(char *data,int size)
{
int count,line;
char number,n,colume;
char buf[100];
n = number = colume = 0;
count = line = 0;
printf("\n\n*****<czz>*****dump %d data(s)*****<czz>*****",size);
while(count < size)
{
memset(buf,0,100);
if(line == 0)
sprintf(buf,"\n0x00000000: ");
else if(line >= 0x01 && line <= 0x0f)
sprintf(buf,"\n0x000000%x0: ",line);
else if(line >= 0x10 && line <= 0xff)
sprintf(buf,"\n0x00000%x0: ",line);
else if(line >= 0x100 && line <= 0xfff)
sprintf(buf,"\n0x0000%x0: ",line);
else if(line >= 0x1000 && line <= 0xffff)
sprintf(buf,"\n0x000%x0: ",line);
else if(line >= 0x10000 && line <= 0xfffff)
sprintf(buf,"\n0x00%x0: ",line);
else if(line >= 0x100000 && line <= 0xffffff)
sprintf(buf,"\n0x0%x0: ",line);
else if(line >= 0x1000000)
sprintf(buf,"\n0x%x0: ",line);
for(colume = 0; colume < 16; colume++)
{
for(n=0;n<2;n++)
{
if(n == 0)
number = (data[count]>>4);
else
number = (data[count]&0xf);
if(count < size)
{
switch(number)
{
case 0x0:
sprintf(buf+13 + colume*3 + n,"0");
break;
case 0x1:
sprintf(buf+13 + colume*3 + n,"1");
break;
case 0x2:
sprintf(buf+13 + colume*3 + n,"2");
break;
case 0x3:
sprintf(buf+13 + colume*3 + n,"3");
break;
case 0x4:
sprintf(buf+13 + colume*3 + n,"4");
break;
case 0x5:
sprintf(buf+13 + colume*3 + n,"5");
break;
case 0x6:
sprintf(buf+13 + colume*3 + n,"6");
break;
case 0x7:
sprintf(buf+13 + colume*3 + n,"7");
break;
case 0x8:
sprintf(buf+13 + colume*3 + n,"8");
break;
case 0x9:
sprintf(buf+13 + colume*3 + n,"9");
break;
case 0xa:
sprintf(buf+13 + colume*3 + n,"A");
break;
case 0xb:
sprintf(buf+13 + colume*3 + n,"B");
break;
case 0xc:
sprintf(buf+13 + colume*3 + n,"C");
break;
case 0xd:
sprintf(buf+13 + colume*3 + n,"D");
break;
case 0xe:
sprintf(buf+13 + colume*3 + n,"E");
break;
case 0xf:
sprintf(buf+13 + colume*3 + n,"F");
break;
}//end switch(number)
}//end if count <=size
else
{
sprintf(buf+13 + colume*3 + n," ");
}
}//end for(n<2) loop
if(count < size)
{
if(data[count]>0x20 && data[count]<0x7f)
sprintf(buf+ 14 + 16*3 + colume,"%c",data[count]);
else
sprintf(buf+ 14 + 16*3 + colume,".");
}
else
{
sprintf(buf+ 14 + 16*3 + colume," ");
}
count++;
if(colume == 3||colume == 7||colume == 11||colume == 15)
sprintf(buf+13 + colume*3 +2,"|");
else
sprintf(buf+13 + colume*3 +2," ");
}//end for(colume <16) loop
buf[13+15*3 + 2 + 1] = 0x7c; //last sprintf will set this bit to \0
printf("%s",buf);
line++;
}//end while(count < size) loop
printf("\n*****<czz>*****end dump*****<czz>*****\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -