4093|2

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

char转16进制的问题 [复制链接]

keil c中将字符串"31313A34383A3439”转为"31 31 3A 34 38 3A 34 39"的十六进制输出。请问大概是什么转换?
应该不是简单的加个空格而已。

最新回复

等我试一下。原来就以为转化为int,然后用一个函数(不是printf)从串口输出,形参是uchar型的。这里就有点糊涂了。谢谢  详情 回复 发表于 2009-4-27 21:06
点赞 关注

回复
举报

71

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
给你一段标准C的代码

您要不费点神先看看?


  1. #include
  2. #include

  3. int main(int argc, char *argv[])
  4. {
  5.   char p[] = "31313A34383A3439";
  6.   unsigned int i = 0;
  7.   unsigned int len = sizeof (p) - 1;
  8.   unsigned int tmp = 0;
  9.   
  10.   for (i = 0; i < len ; i += 1)
  11.   {
  12.       switch (p[i])
  13.       {
  14.           case '1': tmp += 1;break;
  15.           case '2': tmp += 2;break;
  16.           case '3': tmp += 3;break;
  17.           case '4': tmp += 4;break;
  18.           case '5': tmp += 5;break;
  19.           case '6': tmp += 6;break;
  20.           case '7': tmp += 7;break;
  21.           case '8': tmp += 8;break;
  22.           case '9': tmp += 9;break;
  23.           case 'A': tmp += 10;break;
  24.           case 'B': tmp += 11;break;
  25.           case 'C': tmp += 12;break;
  26.           case 'D': tmp += 13;break;
  27.           case 'E': tmp += 14;break;
  28.           case 'F': tmp += 15;break;
  29.          
  30.           default:
  31.           {
  32.               printf("have a mistake!\n");
  33.               system("PAUSE");
  34.               exit(1);
  35.           }   
  36.       }
  37.       
  38.       if (i % 2 == 1)
  39.       {
  40.           printf("%x\n",tmp);
  41.           tmp = 0;
  42.       }
  43.       tmp *= 16;
  44.   }
  45.   system("PAUSE");       
  46.   return 0;
  47. }

复制代码
 
 

回复

91

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
等我试一下。原来就以为转化为int,然后用一个函数(不是printf)从串口输出,形参是uchar型的。这里就有点糊涂了。谢谢
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表