美文网首页
C语言char数组转换十六进制数组

C语言char数组转换十六进制数组

作者: 重驹 | 来源:发表于2021-09-23 11:21 被阅读0次
    /**
    *
    *Function name : StringToHex
    *Description     : Ascii字符数组转十六进制数组
    *Parameter       : str需要转化的字符串,strHex接收16进制数组容器
    *Return              : NULL
    *
    **/
    void StringToHex(char *str, unsigned char *strHex)
    {
    uint8_t i,cnt = 0;
    char *p = str;//指针p初始化为指向str
    uint8_t len = strlen(str);//获取字符串中的字符个数
    while(*p != '\0'){//结束判断
        for(i = 0; i < len; i++){//循环判断当前字符是数字还是小写字符还是大写字符
            if((*p >= '0') && (*p <= '9'))//当前字符为数字0~9时
                strHex[cnt] = *p - '0' + 0x30;
            if((*p >= 'A')&&(*p <= 'Z'))//当前字符为大写字母A~Z时
                strHex[cnt] = *p - 'A' +0x41;
            if((*p >= 'a')&&(*p <= 'z'))//当前字符为小写字母a~z时
                strHex[cnt] = *p - 'a' +0x61;
            
            p++;
            cnt++;
        }
      }
    }
    

    使用

    unsigned char strHex[20] = {0};
    char *str = "EC200UCNAAR01A05M08";
    StringToHex(str,strHex); 
    for(int cnt = 0; cnt < 20; cnt ++)
    {
        debug("cHexText === %x\r\n",strHex[cnt]);
    } 

    相关文章

      网友评论

          本文标题:C语言char数组转换十六进制数组

          本文链接:https://www.haomeiwen.com/subject/ydongltx.html