Обычно мы устанавливаем биты, используя побитовый оператор ИЛИ (оператор | или оператор | = как сокращение).
Предполагается, что 8-битный байт (где MSB считается 7-м битом, а LSB считается 0-м: MSB 0) для простоты:
char some_char = 0;
some_char |= 1 << 0; // set the 7th bit (least significant bit)
some_char |= 1 << 1; // set the 6th bit
some_char |= 1 << 2; // set the 5th bit
// etc.
Мы можем написать простую функцию:
void set_bit(char& ch, unsigned int pos)
{
ch |= 1 << pos;
}
Мы также можем проверить биты с помощью оператора &.
// If the 5th bit is set...
if (some_char & 1 << 2)
...
Вы также должны рассмотреть std :: bitset для этой цели, которая облегчит вашу жизнь.