std::bitset<N>::operator<<,<<=,>>,>>=
| (1) | ||
|
bitset operator<<( std::size_t pos ) const;
|
(until C++11) | |
|
bitset operator<<( std::size_t pos ) const noexcept;
|
(since C++11) | |
| (2) | ||
|
bitset& operator<<=( std::size_t pos );
|
(until C++11) | |
|
bitset& operator<<=( std::size_t pos ) noexcept;
|
(since C++11) | |
| (3) | ||
|
bitset operator>>( std::size_t pos ) const;
|
(until C++11) | |
|
bitset operator>>( std::size_t pos ) const noexcept;
|
(since C++11) | |
| (4) | ||
|
bitset& operator>>=( std::size_t pos );
|
(until C++11) | |
|
bitset& operator>>=( std::size_t pos ) noexcept;
|
(since C++11) | |
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) |