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

< cpp‎ | utility‎ | bitset

| (1) |
bitset operator<<( std::size_t pos ) const; |  | (C++11 前)
bitset operator<<( std::size_t pos ) const noexcept; |  | (C++11 起)
| (2) |
bitset& operator<<=( std::size_t pos ); |  | (C++11 前)
bitset& operator<<=( std::size_t pos ) noexcept; |  | (C++11 起)
| (3) |
bitset operator>>( std::size_t pos ) const; |  | (C++11 前)
bitset operator>>( std::size_t pos ) const noexcept; |  | (C++11 起)
| (4) |
bitset& operator>>=( std::size_t pos ); |  | (C++11 前)
bitset& operator>>=( std::size_t pos ) noexcept; |  | (C++11 起)

进行二进制左移和二进制右移。移入零。

1-2) 进行二进制左移。 (2) 是破坏性的，即对当前对象进行迁移。
3-4) 进行二进制右移。 (4) 是破坏性的，即对当前对象进行迁移。

### 参数

pos | - | 移动位的位置数

### 返回值

1,3) 含有被迁移位的新 bitset 对象
2,4) *this

### 示例

    #include <iostream>
    #include <bitset>

    int main()
    {
        std::bitset<8> b("01110010");
        std::cout << "initial value: " << b << '\n';

        while (b.any()) {
            while (!b.test(0)) {
                b >>= 1;
            }
            std::cout << b << '\n';
            b >>= 1;
        }
    }

输出：

    initial value: 01110010
    00111001
    00000111
    00000011
    00000001

### 参阅

rotl (C++20) | 计算逐位左旋转的结果 (函数模板)
rotr (C++20) | 计算逐位右旋转的结果 (函数模板)
operator&=operator|=operator^=operator~ | 进行二进制与、或、异或及非 (公开成员函数)