在实际编程中,我们经常需要将接受的16进制数据转化为字符串的形式输出,例如:
16进制数据: 01 C1 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 43 00
转化为字符串:01C10048000000000000000000000000004300
具体实现如下:
int charToString(char *src,char *dst,int len)
{
unsigned char i = 0,tempData = 0;
if (NULL == src)
return -1;
if (sizeof (dst) < len *2)
return -1;
for (i =0 ;i < len;i++)
{
tempData=(*(src+3+i)>>4)&0x0f;
if (tempData<10)
dst[2*i+0]=tempData+48;
else
dst[2*i+0]=tempData+55;
tempData=*(src+3+i)&0x0f;
if(tempData<10)
dst[2*i+1]=tempData+48;
else
dst[2*i+1]=tempData+55;
}
return 0;
}