ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
873945 Топик полностью
Dingo (28.09.2018 05:21 - 05:41, просмотров: 389) ответил AlexG на Когда событий станет больше, придется переписывать, но пока хватает с запасом
Корявенько, конечно, но я делал так uint8_t заменить на что вам надо и "8" поменять на соответствующую ширину. Довести до ума бы хорошо, делюсь "как есть". #define BIT_WIDTH 128 uint8_t bitStore[BIT_WIDTH/8]; bool TestBit( uchar bitNum) // 0..255 { uchar idx = bitNum / 8; uchar bitN = bitNum % 8; return ( (bitStore[idx] & (1<<bitN))!=0 ); } void WriteBit(uchar bitNum), char bitVal) // 0..255, == 0 | != 0 { uchar idx = bitNum / 8; uchar bitN = bitNum % 8; if ( bitVal == 0) { bitStore[idx] &= ~(1<<bitN); } else { bitStore[idx] |= (1<<bitN); } }