QT开发中文网

QString、QByteArray转16进制

1、QString转换成十六进制

QT开发交流+赀料君羊:661714027
QT开发交流+赀料君羊:661714027

void ConvertQStringToHex(const QString &str,const QByteArray& byte)
{
    int hexData,lowhexData;
    int hexdataLen=0;
    int len = str.length();
    byte.resize(len/2);
    char lstr,hstr;
    for(int i=0;i<len;)
    {
        hstr = str[i].toLatin1();
        if(hstr ==' ')
        {
            i++;
            continue;
        }
        i++;
        if(i>=len)
        {
            break;
        }
        lstr = str[i].toLatin1();
        hexData = ConvertCharToHex(hstr);
        lowhexData = ConvertCharToHex(lstr);
        if((hexData == 16)|| (lowhexData==16))
        {
            break;
        }
        else
        {
            hexData = hexData*16+lowhexData;
        }
        i++;
        byte[hexdatalen] = (char)hexData;
        hexdataLen++;
    }
    byte.resize(hexdataLen);
}

2、char转十六进制

char ConvertCharToHex(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);
}

3、QByteArray转QString

QByteArray array("Hello World");
QString str = array;
或
str.prepend(array);

4、将16进制QString转换成QByteArray

QByteArray HexStringToByteArray(QString HexString)
{
    bool ok;
    QByteArray ret;
    HexString = HexString.trimmed();
    HexString = HexString.simplified();
    QStringList sl = HexString.split(" ");

    foreach (QString s, sl) {
        if(!s.isEmpty())
        {
            char c = s.toInt(&ok,16)&0xFF;
            if(ok)
            {
                ret.append(c);
            }
            else
            { }
        }
    }
    return ret;
}

5、QByteArray转16进制QString

QString MainWindow::ByteArrayToHexString(QByteArray data)
{
    QString ret(data.toHex().toUpper());
    int len = ret.length()/2;
    qDebug()<<len;
    for(int i=1;i<len;i++)
    {
        ret.insert(2*i+i-1," ");
    }

    return ret;
}

原文作者:临渊慎行
原文地址:https://blog.csdn.net/zq9955/article/details/127045261

目录导航
  • 1、QString转换成十六进制
  • 2、char转十六进制
  • 3、QByteArray转QString
  • 4、将16进制QString转换成QByteArray
  • 5、QByteArray转16进制QString
  • 本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
    转载请注明出处:https://qt.0voice.com/?id=1861

    分享:
    扫描分享到社交APP
    上一篇
    下一篇
    发表列表
    游客 游客
    此处应有掌声~
    评论列表

    还没有评论,快来说点什么吧~

    联系我们

    在线咨询: 点击这里给我发消息

    微信号:3007537140

    上班时间: 10:30-22:30

    关注我们
    x

    注册

    已经有帐号?