2016-07-02 63 views
0

如何将QBytearray转换为QBitarray? Qt的手册这样说:将QBytearray转换为QBitarray

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))); 
    } 

但是,这会导致运行时错误。 有没有更好的方法来做到这一点?

回答

2

这个循环看起来很奇怪,它用i指向8的字节数组,但byteArray可能没有8个元素。只是切换循环限制应该工作:

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

谢谢,你会如何将uint16转换为qbitarray? –