2016-07-02 18 views
0

Wie kann ich ein QBytearray in ein QBitarray konvertieren? Qt Handbuch sagt diese:QBytearray in QBitarray konvertieren

for(int i=0; i<8; ++i) { 
    for(int b=0; b<byteArray.count();b++) { 
     bits.setBit(i*8+b, byteArray.at(i)&(1<<(7-b))); 
    } 

Aber dies führt zu einem Laufzeitfehler. Gibt es einen besseren Weg, dies zu tun?

Antwort

2

Die Schleife scheint seltsam, es ist die Indexierung der Byte-Array mit i, die auf 8 geht, aber das ByteArray möglicherweise nicht 8 Elemente. Nur die Schleifengrenzen sollten funktionieren:

for(int i = 0; i < byteArray.count(); ++i) { 
    for(int b = 0; b < 8; b++) { 
    bits.setBit(i * 8 + b, byteArray.at(i) & (1 << (7 - b))); 
} 
+0

danke, und wie würden Sie ein Uint16 in ein Qbitarray konvertieren? –