Habe mal wieder ein kleines Problemchen und komm nicht drauf.
Ich lese mit QIODevice::readData ( char * data, qint64 maxSize ) einige Bytes in ein char-Array ein.
Code: Alles auswählen
char *temp;
temp = new char[resX * resY];
videoFile = new QFile(path);
if (!videoFile->open(QIODevice::ReadOnly)) {
return;
}
videoFile->read(temp, resX * resY);0a 28 c9 ff f7 fe fe fe fe fe fe fe fe fe fe fe
wenn ich die ersten 16 Bytes meines char-Arrays ausgebe
Code: Alles auswählen
for (j = 0; j < 16; j++) {
qDebug("temp[%i] = %x", j, temp[j]);
}temp[0] = a
temp[1] = 28
temp[2] = ffffffc9
temp[3] = ffffffff
temp[4] = fffffff7
temp[5] = fffffffe
temp[6] = fffffffe
temp[7] = fffffffe
temp[8] = fffffffe
temp[9] = fffffffe
temp[10] = fffffffe
temp[11] = fffffffe
temp[12] = fffffffe
temp[13] = fffffffe
temp[14] = fffffffe
temp[15] = fffffffe
Die ersten beiden Werte stimmen dabei mit denen die mir der Hex-Editor liefert überein. Aber ab dann ändert sich das. Wenn man beispielsweise den dritte Wert betrachtet: der Hex-Editor sagt c9, was dezimal 201 entspricht. Die Ausgabe meines Programms sagt ffffffc9. Mein Taschenrechner spuckt mir für die dezimalzahl -55 (= 201 - 256) ebenfalls den Hex-Wert ffffffc9 aus. Dies gilt genauso für alle weiteren Werte meines char-Arrays.
Woran könnte dies liegen? Was passiert hier?
Vielen Dank und viele Grüße,
HdW