我從 UDP 套接字接收 QByteArray。QByteArray 由 52 個元素組成,每個元素包含從 0 到 9 - A 到 F 的值。現在,我想將此 QByteArray 轉換為包含 13 個元素的短整型陣列,以便 QByteArray 的前 4 個元素存盤在短整型的第一個元素中大批。
例如。QByteArray = (002400AB12CD) -> ShortINT = [0024,00AB,12CD]
我嘗試連接 4 個元素,然后將它們轉換為 Short INT。
uj5u.com熱心網友回復:
您可以使用QByteArray::data()andQByteArray::constData()訪問指向存盤資料的指標,并使用 c cast 或 reinterp_cast 來強制轉換特定型別。您還需要知道資料的位元組序是大端還是小端。
#include <QByteArray>
#include <QDebug>
#include <QtEndian>
void test() {
QByteArray data("\x00\x24\x00\xAB\x12\xCD", 6);
qint16_be* p = (qint16_be*) data.data();
int l = data.size() / sizeof(qint16_be);
for (int i=0;i<l; i ) {
qDebug() << i << hex << p[i];
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/449619.html
標籤:C qt 短的 qbytearray
