std::bitset<N>::operator<<,<<=,>>,>>=
Von de.cppreference.net
bitset operator<<( std::size_t pos ) const;
|
(1) | (noexcept seit C++11) (constexpr seit C++23) |
bitset& operator<<=( std::size_t pos );
|
(2) | (noexcept seit C++11) (constexpr seit C++23) |
bitset operator>>( std::size_t pos ) const;
|
(3) | (noexcept seit C++11) (constexpr seit C++23) |
bitset& operator>>=( std::size_t pos );
|
(4) | (noexcept seit C++11) (constexpr seit C++23) |
Führt eine binäre Linksverschiebung (in Richtung höherer Indexpositionen) und eine binäre Rechtsverschiebung (in Richtung niedrigerer Indexpositionen) durch. Nullen werden hereingeschoben, und Bits, die auf einen Index außerhalb des Bereichs fallen würden, werden verworfen (ignoriert).
1,2) Führt eine binäre Linksverschiebung durch. Die (2) Version ist destruktiv, d.h. sie führt die Verschiebung auf dem aktuellen Objekt durch.
3,4) Führt eine binäre Rechtsverschiebung durch. Die (4) Version ist destruktiv, d.h. sie führt die Verschiebung auf dem aktuellen Objekt durch.
Parameter
| pos | - | Anzahl der Positionen, um die die Bits verschoben werden |
Rückgabewert
1,3)
Neues Bitset-Objekt, das die verschobenen Bits enthält.
2,4)
*
this
Beispiel
Diesen Code ausführen
#include <bitset> #include <iostream> int main() { std::bitset<8> b{0b01110010}; std::cout << b << " (initial value)\n"; for (; b.any(); b >>= 1) { while (!b.test(0)) b >>= 1; std::cout << b << '\n'; } std::cout << b << " (final value)\n"; }
Ausgabe:
01110010 (initial value) 00111001 00000111 00000011 00000001 00000000 (final value)
Siehe auch
(C++20) |
berechnet das Ergebnis einer bitweisen Linksrotation (Funktionsschablone) |
(C++20) |
berechnet das Ergebnis einer bitweisen Rechtsrotation (Funktionsschablone) |
(C++29) |
kehrt die Bits in einer Ganzzahl um (Funktionsschablone) |
| führt binäres UND, ODER, XOR und NICHT aus (öffentliche Elementfunktion) |