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 起) | |
(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) |
计算逐位右旋转的结果 (函数模板) |
进行二进制与、或、异或及非 (公开成员函数) |