は、私は、16進数値IEのn個の量でchar配列を経由の道を見つけようとしています{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];
}
}
私は私のコードは、しかし、Qtはそれをコンパイルし、私に2248」の愚かなエラー与えていない仕事をやるべきだと思う。「QByteArray ::演算子をQNoImplicitBoolCast ':クラス' QByteArray 'で宣言されたプライベートメンバーにアクセスできません。
どのように動作させるためのアイデアですか?
一般的に、iを明確に要求する状況を除いて、ポインタで物を渡すべきではありませんt。デフォルトでは、Qt型は、in-argumentsのときはconst参照で、out-argumentsのときは参照によって渡す必要があります。 'QObject'と派生クラスをポインタまたはポインタへのポインタで渡すのが普通です。 'QFlags'から派生した型のような小さな値型は、値渡しされるべきです。 –
ここで結果を確認することができます:http://www.th-thielemann.de/tools/checksum.html –