C++ (Qt)...QByteArray *byteArray;...QBitArray *bitArray = static_cast<QBitArray *> (byteArray);...
inline bool GetBit( const QByteArray & a, int bitIndex ){ return a[bitIndex / 8] & (1 << (bitIndex % 8)) != 0;}inline void SetBit( QByteArray & a, int bitIndex ){ a[bitIndex / 8] |= (1 << (bitIndex % 8));}inline void ClrBit( QByteArray & a, int bitIndex ){ a[bitIndex / 8] &= ~(1 << (bitIndex % 8));}inline void SetBit( QByteArray & a, int bitIndex, bool doSet ){ if (doSet) SetBit(a, bitIndex); else ClrBit(a, bitIndex);}
#define MASK_1 0x02char bytes = .... //получение байтаif(bytes & MASK_1) { ... //первый бит установлен в 1 (нумерация битов с нуля начинается справал налево)};