Namespaces
Variants

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

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

Realiza desplazamiento binario a la izquierda (hacia posiciones de índice más altas) y desplazamiento binario a la derecha (hacia posiciones de índice más bajas). Se introducen ceros, y los bits que irían a un índice fuera de rango se descartan (ignoran).

1,2) Realiza desplazamiento binario a la izquierda. La (2) versión es destructiva, es decir, realiza el desplazamiento en el objeto actual.
3,4) Realiza un desplazamiento binario hacia la derecha. La (4) versión es destructiva, es decir, realiza el desplazamiento en el objeto actual.

Contenidos

Parámetros

pos - número de posiciones para desplazar los bits

Valor de retorno

1,3) Nuevo objeto bitset que contiene los bits desplazados.
2,4) * this

Ejemplo

#include <bitset>
#include <iostream>
int main()
{
    std::bitset<8> b{0b01110010};
    std::cout << b << " (valor inicial)\n";
    for (; b.any(); b >>= 1)
    {
        while (!b.test(0))
            b >>= 1;
        std::cout << b << '\n';
    }
    std::cout << b << " (valor final)\n";
}

Salida:

01110010 (valor inicial)
00111001
00000111
00000011
00000001
00000000 (valor final)

Véase también

(C++20)
calcula el resultado de la rotación a la izquierda a nivel de bits
(plantilla de función)
(C++20)
calcula el resultado de la rotación a la derecha a nivel de bits
(plantilla de función)
realiza operaciones binarias AND, OR, XOR y NOT
(función miembro pública)