Я пытаюсь найти способ идти через массив символов с п количеством шестнадцатеричных значений т.е. {0xA2, 0xE7, 0x5f, 0x1B, 0x11, 0x11, 0x00} и я хочу, чтобы попытаться сделать XOR контрольная сумма через все элементы в нем - точнее, A2^E7^5F^1B^11^00 - .Qt C++ xor для контрольной суммы?
Вот немного моего кода:
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];
}
}
Я думаю, что мой код должен делать свою работу, однако кварты не компилирует его и дает мне глупую ошибку «2248:«QByteArray :: оператор QNoImplicitBoolCast ': не может получить доступ к закрытому члену, объявленному в классе «QByteArray».
Любые идеи о том, как заставить его работать?
В общем, вы не должны передавать вещи указателем, за исключением обстоятельств, которые явно требуют i т. По умолчанию вам следует передавать типы Qt по ссылке const, когда они являются аргументами, и по ссылке, когда они являются аргументами. Обычно принято передавать QObject и производные классы указателем или указателем на константу. Малые типы значений, такие как типы, которые выводятся из 'QFlags', должны передаваться по значению. –
Вы можете посмотреть ваш результат здесь: http://www.th-thielemann.de/tools/checksum.html –