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

来自cppreference.com
< cpp‎ | utility‎ | bitset
 
 
工具库
通用工具
格式化库 (C++20)
(C++11)
关系运算符 (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++17)
(C++17)
栈踪
 
 
(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

参阅

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