例如:0x19变为'1'和'9' 。
以下为16进制数据转为字符型数据的代码,buf1为16进制数据,buf2作为缓存区保存改变后的数据:
void Valuetochar (unsigned char *buf1,unsigned char *buf2)
{
int i = 0,j=0;
unsigned char tmp[100] ={0};
for(j=0;j<100;j++)
{
tmp[j] = ((buf1[i]&0xf0)>>4);
tmp[++j] = (buf1[i]&0x0f);;
i++;
}
printf("tmp's value is transmitting\n");
for(j=0;j<100;j++)
{
if(tmp[j]>=0x0 && tmp[j]<=0x9)
{
tmp[j]=tmp[j]+'0';
}
if(tmp[j]>=0xA && tmp[j]<=0xF)
{
tmp[j]=tmp[j]+'A'-10;
}
if(tmp[j]>=0xa && tmp[j]<=0xf)
{
tmp[j]=tmp[j]+'a'-10;
}
buf2[j] = tmp[j];
printf("%c",tmp[j]);
}
printf("\n");
}