标题: 单片机C语言里面字符串数组如何转为16进制? [打印本页]

作者: 榆木大脑袋    时间: 2019-6-29 23:48
标题: 单片机C语言里面字符串数组如何转为16进制?
STC12C2052单片机,串口接收到的数据存放在字符串数组里,连起来如:#1FF4E$#为开始位,$为结束位,请问各位大神:
1、我如何把str[1],也就是第二位取出赋值给“str1”和字符做比较   if(str1=="1"){}
2、如何把3,4,5,6位  “FF4E”取出转成oxff4e这样的16进制?

新手上路,拜托了,谢谢

作者: lingwise    时间: 2019-6-30 01:34
str1[0] = str[1];if(str1[0] == '1'){}....

unsigned short int result = 0;
unsigned char data_temp = 0;
unsigned char i.;
for(i = 0;i<4;i++)
{
  result = result<<4;
  if(str1[2+i] >='A')data_temp  = str1[2+i] - 'A'+10;
  else data_temp  = str1[2+i] - '0';
  result+= data_temp;
}
return result;///result就是算出来的结果了
作者: lingwise    时间: 2019-6-30 09:42
不好意思,循环里的str1应该改为str
作者: 榆木大脑袋    时间: 2019-6-30 12:50
lingwise 发表于 2019-6-30 01:34
str1[0] = str[1];if(str1[0] == '1'){}....

unsigned short int result = 0;

谢谢了




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