std::bitset<N>:operator<<,<<=,>>,>>=
Von cppreference.com
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 binäre Links- und Rechtsverschiebungen durch (zu höheren bzw. niedrigeren Indexpositionen). Nullen werden hineingeschoben, und Bits, die einen Index außerhalb des gültigen Bereichs erreichen würden, werden verworfen (ignoriert).
1,2) Führt eine binäre Linksverschiebung durch. Die Version (2) ist destruktiv, d. h. führt die Verschiebung auf dem aktuellen Objekt durch.
3,4) Führt eine binäre Rechtsverschiebung durch. Die Version (4) ist destruktiv, d. h. führt die Verschiebung auf dem aktuellen Objekt durch.
Inhalt |
[bearbeiten] Parameter
| pos | - | Anzahl der Positionen, um die die Bits verschoben werden sollen |
[bearbeiten] Rückgabewert
1,3) Neues bitset-Objekt, das die verschobenen Bits enthält.
2,4) *this
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#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)
[bearbeiten] Siehe auch
| (C++20) |
berechnet das Ergebnis einer bitweisen Linksrotation (Funktion-Template) |
| (C++20) |
berechnet das Ergebnis einer bitweisen Rechtsrotation (Funktion-Template) |
| führt binäre AND-, OR-, XOR- und NOT-Operationen durch (public member function) |