十六进制转字符
在单片机里面定义了一个unsigned char buf[10];其内面放的数是16进制的,即buf[0]=0x11 ,bug[1]=0x22,buf[3]=0x33,....,buf[9]=0x88。 现在我要把这字符数组里的十六进制转换成字符输出到终端来,即:1122334455667788,这样的格式,不知道用C语言如何转换呢?
还有一点我不明白的是,因为buf是无符号字符数组,里面怎么存的是16进制而不错误呢?事实它是可以的,但是我不明白
[解决办法]
计算机中只有二进制的0和1,其他的都是假象,用来给人看的。
正所谓,数据都有“里”和“表”之分。
[解决办法]
buf 的本质就是一块内存地址而已,存的就是一个字节流,只是看你按照什么来解读
[解决办法]
unsigned char buf[2]={0x11,0x22};
char str[2*2+1];
int i;
for (i=0;i<2;i++) sprintf(str+i*2,"%02x",buf[i]);
printf("%s\n",str);//1122
[解决办法]