Ich versuche, einen Weg zu gehen durch einen char-Array mit n Menge von hexadezimalen Werten zu finden, dh {0xA2, 0xE7, 0x5F, 0x1B, 0x11, 0x11, 0x00} und ich mag eine XOR versuchen und zu tun Prüfsumme durch alle Elemente darin - um genauer zu sein ist A2^E7^5F^1B^11^00 . HierQt C++ xor für eine Prüfsumme?
ist das Bit von meinem Code:
void MainWindow::checkSum(QByteArray *b)
{
qint16 b_len = b->length();
unsigned char xor = 0;
for (int i = 0 ; i < b_len ; i ++)
{
xor = xor^b[i];
}
}
ich meinen Code denken sollte die Arbeit jedoch tun qt es nicht kompilieren lässt und gibt mir die dummen Fehler „2248:‚QByteArray :: operator QNoImplicitBoolCast ': kann nicht auf das private Mitglied zugreifen, das in der Klasse' QByteArray 'deklariert ist ".
Irgendwelche Ideen, wie man es zum Laufen bringt?
Im Allgemeinen sollten Sie die Dinge nicht mit dem Zeiger übergeben, außer unter Umständen, die eindeutig verlangen, dass ich t. Standardmäßig sollten Sie Qt-Typen durch const-Referenz übergeben, wenn sie In-Argumente sind, und als Referenz, wenn sie out-Argumente sind. Es ist üblich, 'QObject' und abgeleitete Klassen durch Zeiger oder Zeiger-zu-Konst zu übergeben. Kleine Werttypen, z. B. Typen, die von 'QFlags' abgeleitet sind, sollten als Wert übergeben werden. –
Sie können Ihr Ergebnis hier einsehen: http://www.th-thielemann.de/tools/checksum.html –