找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3528|回复: 3
打印 上一主题 下一主题
收起左侧

单片机C语言里面字符串数组如何转为16进制?

[复制链接]
回帖奖励 100 黑币 回复本帖可获得 10 黑币奖励! 每人限 1 次
跳转到指定楼层
楼主
ID:569870 发表于 2019-6-29 23:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STC12C2052单片机,串口接收到的数据存放在字符串数组里,连起来如:#1FF4E$#为开始位,$为结束位,请问各位大神:
1、我如何把str[1],也就是第二位取出赋值给“str1”和字符做比较   if(str1=="1"){}
2、如何把3,4,5,6位  “FF4E”取出转成oxff4e这样的16进制?

新手上路,拜托了,谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:62223 发表于 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就是算出来的结果了

评分

参与人数 1黑币 +12 收起 理由
榆木大脑袋 + 12 很给力!

查看全部评分

回复

使用道具 举报

板凳
ID:62223 发表于 2019-6-30 09:42 | 只看该作者
不好意思,循环里的str1应该改为str
回复

使用道具 举报

地板
ID:569870 发表于 2019-6-30 12:50 | 只看该作者
lingwise 发表于 2019-6-30 01:34
str1[0] = str[1];if(str1[0] == '1'){}....

unsigned short int result = 0;

谢谢了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表