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

From cppreference.com
< cpp‎ | utility‎ | bitset
 
 
Utilities library
General utilities
Date and time
Function objects
Formatting library (C++20)
(C++11)
Relational operators (deprecated in C++20)
Integer comparison functions
(C++20)(C++20)(C++20)   
(C++20)
Swap and type operations
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Common vocabulary types
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Elementary string conversions
(C++17)
(C++17)
 
 
(1)
bitset operator<<( std::size_t pos ) const;
(until C++11)
bitset operator<<( std::size_t pos ) const noexcept;
(since C++11)
(until C++23)
constexpr bitset operator<<( std::size_t pos ) const noexcept;
(since C++23)
(2)
bitset& operator<<=( std::size_t pos );
(until C++11)
bitset& operator<<=( std::size_t pos ) noexcept;
(since C++11)
(until C++23)
constexpr bitset& operator<<=( std::size_t pos ) noexcept;
(since C++23)
(3)
bitset operator>>( std::size_t pos ) const;
(until C++11)
bitset operator>>( std::size_t pos ) const noexcept;
(since C++11)
(until C++23)
constexpr bitset operator>>( std::size_t pos ) const noexcept;
(since C++23)
(4)
bitset& operator>>=( std::size_t pos );
(until C++11)
bitset& operator>>=( std::size_t pos ) noexcept;
(since C++11)
(until C++23)
constexpr constexpr bitset& operator>>=( std::size_t pos ) noexcept;
(since C++23)

Performs binary shift left and binary shift right. Zeroes are shifted in.

1-2) Performs binary shift left. The (2) version is destructive, i.e. performs the shift to the current object.
3-4) Performs binary shift right. The (4) version is destructive, i.e. performs the shift to the current object.

Parameters

pos - number of positions to shift the bits

Return value

1,3) new bitset object containing the shifted bits
2,4) *this

Example

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

Output:

01110010 (initial value)
00111001
00000111
00000011
00000001

See also

(C++20)
computes the result of bitwise left-rotation
(function template)
(C++20)
computes the result of bitwise right-rotation
(function template)
performs binary AND, OR, XOR and NOT
(public member function)