QBitArray Test::convertBytesToBits(QByteArray fromArray){ QBitArray outArray; outArray.resize(fromArray.size() * 8);//! resize array for (int i = 0; i<fromArray.count(); ++i) for (int b = 0; b < 8; ++b) { outArray.setBit(i * 8 + b, (fromArray.at(i)&(1 << b))); } return outArray;}QByteArray Test::convertBitsToBytes(QBitArray bitArray){ QByteArray byteArray; char c; //qDebug() << "bitArraySize= "; //qDebug() << (int)bitArray.size(); for (int j = 0; j<bitArray.size() / 8; j++) { //c = '0'; for (int i = 0; i<bitArray.size(); i++) { if (bitArray.testBit(i)) { c |= (1 << i); } }//! convert bit array to byte array byteArray.append(c); } //qDebug() << "Byte after: "; //qDebug() << byteArray; return byteArray;}функция для убоства проверки побитовоvoid Test::printBitArray(QBitArray&outArray, QString aComm){ QString str = ""; for (int i = 0; i<outArray.size(); i++) { if (outArray.testBit(i)) str = str.insert(outArray.size() - i, "1"); else str = str.insert(outArray.size() - i, "0"); }//for qDebug()<<aComm<<":" << str;}
for (int j = 0; j<bitArray.size() / 8; j++) { //c = '0'; for (int i = 0; i<bitArray.size(); i++)
C++ (Qt)QByteArray Test::convertBitsToBytes(const QBitArray & src) { QByteArray dst((src.size() + 7) / 8, 0); for (int i = 0; i < src.size(); ++i) { char & c = dst[i / 8]; if (src.testBit(i)) c |= (1 << (i % 8)); } return dst;}
C++ (Qt)QByteArray Test::convertBitsToBytes(const QBitArray & src) { QByteArray dst((src.size() + 7) / 8, 0); for (int i = 0; i < src.size(); ++i) { if (src.testBit(i)) dst[i / 8] |= (1 << (i % 8)); } return dst;}