Namespaces
Variants

std::bitset<N>:: operator<<,<<=,>>,>>=

From cppreference.net
Utilities library
bitset operator << ( std:: size_t pos ) const ;
(1) (noexcept начиная с C++11)
(constexpr начиная с C++23)
bitset & operator <<= ( std:: size_t pos ) ;
(2) (noexcept начиная с C++11)
(constexpr начиная с C++23)
bitset operator >> ( std:: size_t pos ) const ;
(3) (noexcept начиная с C++11)
(constexpr начиная с C++23)
bitset & operator >>= ( std:: size_t pos ) ;
(4) (noexcept начиная с C++11)
(constexpr начиная с C++23)

Выполняет двоичный сдвиг влево (в сторону старших позиций индекса) и двоичный сдвиг вправо (в сторону младших позиций индекса). Сдвигаются нули, а биты, которые выходят за пределы диапазона индексов, отбрасываются (игнорируются).

1,2) Выполняет двоичный сдвиг влево. (2) версия является деструктивной, т.е. выполняет сдвиг текущего объекта.
3,4) Выполняет двоичный сдвиг вправо. (4) версия является деструктивной, т.е. выполняет сдвиг текущего объекта.

Содержание

Параметры

pos - количество позиций для сдвига битов

Возвращаемое значение

1,3) Новый объект bitset, содержащий сдвинутые биты.
2,4) * this

Пример

#include <bitset>
#include <iostream>
int main()
{
    std::bitset<8> b{0b01110010};
    std::cout << b << " (начальное значение)\n";
    for (; b.any(); b >>= 1)
    {
        while (!b.test(0))
            b >>= 1;
        std::cout << b << '\n';
    }
    std::cout << b << " (конечное значение)\n";
}

Вывод:

01110010 (начальное значение)
00111001
00000111
00000011
00000001
00000000 (конечное значение)

Смотрите также

(C++20)
вычисляет результат побитового поворота влево
(шаблон функции)
(C++20)
вычисляет результат побитового поворота вправо
(шаблон функции)
выполняет бинарные операции AND, OR, XOR и NOT
(публичная функция-член)