标题: 我想问一下51单片机char型的数据转字符串 [打印本页]

作者: hackerbc    时间: 2020-2-29 14:25
标题: 我想问一下51单片机char型的数据转字符串
比如char a=0xf0;然后我要把他转换为"0xf0",有什么方法没?

作者: csmyldl    时间: 2020-2-29 16:31
本帖最后由 csmyldl 于 2020-3-1 01:01 编辑

如果只是单个转换的话,定义一个数组 char num[4];
然后num[0]='0';
num[1]='x';
if ((a>>4)>10))
  num[3]=(a>>4)+0x41;     //此处记错了 0x41是'A'
else num[3]=(a>>4)+0x30;
if ((a%16)>10))
  num[3]=(a%16)+0x41;
else num[3]=(a%16)+0x30;
作者: hackerbc    时间: 2020-2-29 17:54
csmyldl 发表于 2020-2-29 16:31
如果只是单个转换的话,定义一个数组 char num[4];
然后num[0]='0';
num[1]='x';

感谢大佬的回复
作者: lyl44    时间: 2020-2-29 18:15
c语言就这点不好,转换起来很麻烦。我记得有个专门的第三方库,可以用。
作者: howelee    时间: 2020-2-29 21:40
使用共同体切分,输入字符,可以输出整型。
作者: hantu    时间: 2020-3-1 13:19
#define uchar unsigned char

    uchar a=0xf0;
    char str[5]="0x";
    printf("%d %d %d\n",a,a/16,a%16);
    str[2]=(a/16)>9?a/16-10+'a':a/16+'0';
    str[3]=(a%16)>9?a%16-10+'a':a%16+'0';
    str[4]='\0';

要用无符号数,不然结果会出错的。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1