std::bitset<N>::operator<<,<<=,>>,>>=
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    | (1) | ||
|   bitset operator<<( std::size_t pos ) const;  | 
(C++11 前) | |
|   bitset operator<<( std::size_t pos ) const noexcept;  | 
 (C++11 起)  (C++23 前)  | 
|
|   constexpr bitset operator<<( std::size_t pos ) const noexcept;  | 
(C++23 起) | |
| (2) | ||
|   bitset& operator<<=( std::size_t pos );  | 
(C++11 前) | |
|   bitset& operator<<=( std::size_t pos ) noexcept;  | 
 (C++11 起)  (C++23 前)  | 
|
|   constexpr bitset& operator<<=( std::size_t pos ) noexcept;  | 
(C++23 起) | |
| (3) | ||
|   bitset operator>>( std::size_t pos ) const;  | 
(C++11 前) | |
|   bitset operator>>( std::size_t pos ) const noexcept;  | 
 (C++11 起)  (C++23 前)  | 
|
|   constexpr bitset operator>>( std::size_t pos ) const noexcept;  | 
(C++23 起) | |
| (4) | ||
|   bitset& operator>>=( std::size_t pos );  | 
(C++11 前) | |
|   bitset& operator>>=( std::size_t pos ) noexcept;  | 
 (C++11 起)  (C++23 前)  | 
|
|   constexpr bitset& operator>>=( std::size_t pos ) noexcept;  | 
(C++23 起) | |
进行二进制左移和二进制右移。移入零。
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)  | 
   计算逐位右旋转的结果   (函数模板)  | 
|   进行二进制与、或、异或及非  (公开成员函数)  |