std::bitset<N>::operator<<,<<=,>>,>>=
来自cppreference.com
| (1) | (C++11 起为 noexcept) (C++23 起为 constexpr) |
|
| (2) | (C++11 起为 noexcept) (C++23 起为 constexpr) |
|
| (3) | (C++11 起为 noexcept) (C++23 起为 constexpr) |
|
| (4) | (C++11 起为 noexcept) (C++23 起为 constexpr) |
|
进行二进制左移(向高索引位置)和二进制右移(向低索引位置)。移入零,移出索引位置的位被丢弃(忽略)。
1,2) 进行二进制左移。(2) 是破坏性的,即对当前对象进行迁移。
3,4) 进行二进制右移。(4) 是破坏性的,即对当前对象进行迁移。
参数
| pos | - | 移动位的位置数 |
返回值
1,3) 含有被迁移位的新
bitset 对象。2,4)
*this示例
运行此代码
#include <bitset>
#include <iostream>
int main()
{
std::bitset<8> b{0b01110010};
std::cout << b << " (初值)\n";
for (; b.any(); b >>= 1)
{
while (!b.test(0))
b >>= 1;
std::cout << b << '\n';
}
std::cout << b << " (终值)\n";
}
输出:
01110010 (初值)
00111001
00000111
00000011
00000001
00000000 (终值)
参阅
(C++20) |
计算逐位左旋转的结果 (函数模板) |
(C++20) |
计算逐位右旋转的结果 (函数模板) |
| 进行二进制与、或、异或及非 (公开成员函数) |