Надо вообще рассказать, что за биты такие и зачем они нужны. Все просто:
1 бит - это либо 1, либо 0 (вкл/выкл, да/нет и т.д.)
1 байт - это 8 бит, т.е закодировать можно максимум 2^8=256 различных значений (этого, кстати, достаточно чтоб использовать алфавит + некоторые символы, см. ASCII)
В C++ работа с битами выполняется через bitwise операторы - &, |, <<, >>, ~, ^ (по порядку: И, ИЛИ, смещение влево, смещение вправо, НЕ, исключающее ИЛИ)
Зачастую биты используются для минимизации данных под флаги:
uint32_t flags{}; flags |= 1 << 1; // поставит 1 бит на 1
bool так же может быть битом, если в структуре явно указать под него размер:
struct my_struct
{
char some_data; // 8 бит
bool b1 : 1; // 1 бит
bool b2 : 1; // 1 бит
char some_other_data : 6; // 6 бит
};
Другое применение битов - шифрование и кодировка. Почитать можно, к примеру, про мною любимый UTF-8 на википедии (используются биты для определения количества октетов, определение является ли октетом и т.д)
Если интересно, то рекомендую прочесть про булеву алгебру - чтиво, что надо, под пивас пойдет.