У меня есть данные QByteArray, который, когда я печатаю его с QDebug он дает что-то вроде:Преобразование QByteArray в целое
qDebug() << rawData;
//here is the reult:
MXTP24\\x00\\x00\\xF3\\x8F
Теперь мне нужно преобразовать, что 4 шестнадцатеричная строка в 32-битном целое, что мне нужно разобрать \x00 \x00 \xF3 \x8F
на целое число. Я пробовал следующий код, но он не:
QDataStream ds;
ds << rawData.mid(8,2);
ds << rawData.mid(13,2);
ds << rawData.mid(18,2);
ds << rawData.mid(23,2);
quint32 sampleCounter = 0;
ds >> sampleCounter;
qDebug() << "PARSER => onReceivePacket => sampleCounter => " << sampleCounter;
Но независимо от того, как сильно я стараюсь это не удается, и печатает 0
. Я не знаю, что именно происходит в QByteArray ... Я думаю, что это тривиальная задача, но я не могу понять это
Что такое 'rawData'? Что представляют данные? –
@SeanKuhlman Это просто то, что я открываю из сетевого сокета ... Я просто знаю, что мне нужно каким-то образом преобразовать эту шестнадцатеричную строку в целое. Я имею в виду, что QByteArray я показал в вопросе –
Выполняет ли 'rawData.size()' равно 10? Попробуйте 'ds << rawData.mid (6, 4);' как единственную вставку в 'ds'. Последние четыре байта выглядят закодированными, поскольку они не могут быть напечатаны как символы. –