0
我试图找到通过字符数组要与十六进制值,即n个量的方式{0xA2,0xE7,0x5F的,0x1B,0×11,0×11,0×00},我想尝试做一个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];
}
}
我想我的代码应该做的工作不过Qt不编译它,给我的“2248愚蠢的错误:“的QByteArray ::运算QNoImplicitBoolCast ':无法访问类'QByteArray'''中声明的私有成员。
如何使它工作的任何想法?
一般情况下,你不应该路过指针的东西,除非明确要求我的情况吨。默认情况下,当它们在参数中时,你应该通过const引用来传递Qt类型,当它们是out-arguments时通过引用来传递Qt类型。传统上,通过指针或指向const的'QObject'和派生类。小值类型,例如从'QFlags'派生的类型,应该按值传递。 –
你可以在这里查看您的结果:http://www.th-thielemann.de/tools/checksum.html –