C++ 串口通信时字符串转16进制转换

//************************************
// Method:    strToHex 十六进制字符串转16进制
// FullName:  CommUtil::strToHex
// Access:    public 
// Returns:   int XOR异或值
// Qualifier:
// Parameter: char * hexStr 十六进制字符串
// Parameter: unsigned char * outData 存储16进制容器
//************************************
int strToHex(char* hexStr, unsigned char *outData) {
    char *tmpStr = new char[strlen(hexStr)];
    strcpy(tmpStr, hexStr);
    char* res = strtok(tmpStr, " ");
    int tmpXor = 0x00;
    int i = 0;
    while (res != NULL) {
        int r = strtoull(res, NULL, 16);
        outData[i] = r;
        tmpXor ^= r;
        //std::cout << res << "  " << r << " outData:" << ((int)outData[i]) << std::endl;
        i++;

        res = strtok(NULL, " ");
    }
    return tmpXor;
}

调用:

int main() {
    unsigned char data[3];
    strToHex("AA BB CC", data);
    cout << data;
}

原文链接: https://www.cnblogs.com/GengMingYan/p/15417517.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/214389

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 上午2:15
下一篇 2023年2月13日 上午2:16

相关推荐