std::bitset<N>::operator<<,<<=,>>,>>=
来自cppreference.com
工具库
std::bitset
成员类型 | ||||
成员函数 | ||||
(C++20
前)
|
||||
元素访问 | ||||
容量 | ||||
修改器 | ||||
bitset::operator<<=bitset::operator>>=bitset::operator<<bitset::operator>>
|
||||
转换 | ||||
(C++11)
|
||||
非成员函数 | ||||
辅助类 | ||||
(C++11)
|
(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)
|
计算逐位右旋转的结果 (函数模板) |
进行二进制与、或、异或及非 (公开成员函数) |