Namespaces
Variants

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

cppreference.netより
 
 
ユーティリティライブラリ
言語サポート
型サポート (基本型、RTTI)
ライブラリ機能テストマクロ (C++20)
プログラムユーティリティ
可変長引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)(C++20)(C++20)    
(C++20)
swap および 型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
共通語彙型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
bitset operator<<( std::size_t pos ) const;
(1) (C++11からnoexcept)
(C++23からconstexpr)
bitset& operator<<=( std::size_t pos );
(2) (C++11からnoexcept)
(C++23からconstexpr)
bitset operator>>( std::size_t pos ) const;
(3) (C++11からnoexcept)
(C++23からconstexpr)
bitset& operator>>=( std::size_t pos );
(4) (C++11からnoexcept)
(C++23からconstexpr)

バイナリ左シフト(より大きいインデックス方向へ)およびバイナリ右シフト(より小さいインデックス方向へ)を実行します。シフトされた位置にはゼロが入り、範囲外のインデックスに移動するビットは捨てられます(無視されます)。

1,2) バイナリ左シフトを実行します。(2)のバージョンは破壊的、つまり現在のオブジェクトに対してシフトを実行します。
3,4) バイナリ右シフトを実行します。(4)のバージョンは破壊的、つまり現在のオブジェクトに対してシフトを実行します。

パラメータ

pos - ビットをシフトする位置数

戻り値

1,3) シフトされたビットを含む新しいbitsetオブジェクト。
2,4) * this

例

#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";
}

出力:

01110010 (initial value)
00111001
00000111
00000011
00000001
00000000 (final value)

関連項目

(C++20)
ビット単位の左ローテーションの結果を計算する
(関数テンプレート)
(C++20)
ビット単位の右ローテーションの結果を計算する
(関数テンプレート)
整数のビットを反転する
(関数テンプレート)
バイナリAND、OR、XOR、およびNOTを実行する
(パブリックメンバ関数)