qt大小端转换

qt
Author

dd21

Published

December 5, 2022

在这里插入图片描述

1580 0001为例

    QByteArray b("15800001");
    qint32 a = parseValueInt32(b, 0, 8);
    qDebug() << "\tseqNum:" << a;

32位大端解析:

qint32 single_test::parseValueInt32(QByteArray data, int valuePos, int valueSize)
{
    bool ok;
    QByteArray parseData;
    parseData = data.mid(valuePos, valueSize);
    QString strParseData = parseData;
    qint32 tempInt32 = strParseData.toInt(&ok, 16);
                            //                     0x15 80 00 01(原始数据反过来)
    qDebug() << tempInt32; // 16810005 (十进制) --> 0x01 00 80 15(十六进制)
    qint32 parseValueOut = qToBigEndian(tempInt32);     // Convert to Big-Endian
    return parseValueOut;    
}

在这里插入图片描述