Qt中字符串转换十六进制

来源:互联网 发布:lcd1602数据手册 编辑:程序博客网 时间:2024/05/21 08:41

main.cpp 主函数

 #include "StringToHex.h"    QString str = "ABBCCDD120190E";    QByteArray temp;    StringToHex(str, temp);    qDebug()<<temp.toHex();    qDebug()<<temp;


 StringToHex.h的头文件

char ConvertHexChar(char ch){    if((ch >= '0') && (ch <= '9'))        return ch-0x30;    else if((ch >= 'A') && (ch <= 'F'))        return ch-'A'+10;    else if((ch >= 'a') && (ch <= 'f'))        return ch-'a'+10;    else return (-1);}void StringToHex(QString str, QByteArray &senddata){    int hexdata,lowhexdata;    int hexdatalen = 0;    int len = str.length();    senddata.resize(len/2);    char lstr,hstr;    for(int i=0; i<len; )    {        //char lstr,        hstr=str[i].toAscii();        if(hstr == ' ')        {            i++;            continue;        }        i++;        if(i >= len)            break;        lstr = str[i].toAscii();        hexdata = ConvertHexChar(hstr);        lowhexdata = ConvertHexChar(lstr);        if((hexdata == 16) || (lowhexdata == 16))            break;        else            hexdata = hexdata*16+lowhexdata;        i++;        senddata[hexdatalen] = (char)hexdata;        hexdatalen++;    }    senddata.resize(hexdatalen);}

结果显示:



0 0
原创粉丝点击