本文介绍从QByteArray对象中提取整型数据。
在设计通信协议中,会将整型数据转换为字符型数据进行传输,在使用Qt进行应用程序开发过程中涉及对接收到的数据进行解析,通常用QByteArray对象对其进行存储和传输。Qt提供了相应的方法方便从QByteArray对象中提取指定长度的整型数据。
以小端格式为例:
#include <QtEndian>
#include <QDebug>
int main(int argc, char *argv[])
{
QByteArray data;
unsigned int value = 0;
data.append(0x01);
data.append(0x03);
data.append(0x04);
data.append(0x05);
data.append(0x08);
value = qFromLittleEndian<unsigned int>(data.mid(2, 2).data());
//value = quint32((quint8(data.at(3)) << 8) | quint8(data.at(7)));
qDebug() << value;
return 0;
}
对于大端格式则可以使用:
value = qFromBigEndian<unsigned int>(data.mid(2, 2).data());
总结,本文介绍了从QByteArray对象中提取整型数据。