Ich habe ein QByteArray Daten ganze Zahl, die, wenn ich es mit qDebug es etwas auszudrucken wie ergibt:QByteArray Konvertieren
qDebug() << rawData;
//here is the reult:
MXTP24\\x00\\x00\\xF3\\x8F
Jetzt muß ich konvertieren, dass 4 Hex-String in eine 32-Bit-Ganzzahl, die ich brauche, um \x00 \x00 \xF3 \x8F
zu einer ganzen Zahl zu analysieren. Ich habe versucht, den folgenden Code aber es funktioniert nicht:
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;
Aber egal, wie hart ich versuche es nicht und druckt 0
. Ich weiß nicht, was genau in der QByteArray los ... Ich denke, das ist eine triviale Aufgabe ist, aber ich kann es heraus
Was ist 'rawData'? Was repräsentieren die Daten? –
@SeanKuhlman Es ist nur etwas, was ich von Netzwerk-Socket ... Ich weiß nur, dass ich irgendwie diese 4 hex Zeichenfolge in Ganzzahl konvertieren muss. Ich meine, es ist das QByteArray, das ich in der Frage zeigte –
Ist 'rawData.size()' gleich 10? Versuchen Sie 'ds << rawData.mid (6, 4);' als einzige Einfügung zu 'ds'. Die letzten vier Bytes scheinen codiert zu sein, da sie nicht als Zeichen gedruckt werden können. –