首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

十六进制转字符解决方案

2012-05-27 
十六进制转字符在单片机里面定义了一个unsigned char buf[10]其内面放的数是16进制的,即buf[0]0x11 ,bug

十六进制转字符
在单片机里面定义了一个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
[解决办法]

探讨
引用:
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

在pc机上可以用,但是在单片机里面就用不了,我按照你的方法转换成字符后用串口输出,但串口……

热点排行