16进制字符串转ascii码

yuluhanxiang 2016-01-17 09:28:56
十六进制字符串转ascii码字符串,各位大神有会的,求解答 刚接触蓝牙,做得真烦啊,和硬件交流不说,蓝牙回复的数据也要来回转换,现在就卡在这了,,,
...全文
123 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hslinux 2016-01-19
  • 打赏
  • 举报
回复
找张ASCII码表,观察下各个数字、字母ASCII码值与字符本身的联系
char szSSDest[] = "0001090A0a0F0f";
    char szSrc[10] = {0};
    szSrc[0] = 0x00;
    szSrc[1] = 0x01;
    szSrc[2] = 0x09;
    szSrc[3] = 0x0A;
    szSrc[4] = 0x0a;
    szSrc[5] = 0x0F;
    szSrc[6] = 0x0f;
    
    char cNum = '0';
    char cChar = 'A' - 0x0A;
    char cLittle = 'a' - 0x0a;
    char szDest[20] = {0};
    szDest[0] = ((szSrc[0] >> 4) & 0x0F) + cNum;
    szDest[1] = (szSrc[0] & 0x0F) + cNum;
    
    
    szDest[2] = ((szSrc[1] >> 4) & 0x0F) + cNum;
    szDest[3] = (szSrc[1] & 0x0F) + cNum;
    
    szDest[4] = ((szSrc[2] >> 4) & 0x0F) + cNum;
    szDest[5] = (szSrc[2] & 0x0F) + cNum;
    
    szDest[6] = ((szSrc[3] >> 4) & 0x0F) + cNum;
    szDest[7] = (szSrc[3] & 0x0F) + cChar;
    
    szDest[8] = ((szSrc[4] >> 4) & 0x0F) + cNum;
    szDest[9] = (szSrc[4] & 0x0F) + cLittle;
    
    szDest[10] = ((szSrc[5] >> 4) & 0x0F) + cNum;
    szDest[11] = (szSrc[5] & 0x0F) + cChar;
    
    szDest[12] = ((szSrc[6] >> 4) & 0x0F) + cNum;
    szDest[13] = (szSrc[6] & 0x0F) + cLittle;
    
    szDest[14] = 0;
    printf("szDest {%s} \r\n", szDest);
    printf("szSSDest {%s} \r\n", szSSDest);

29,043

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧