bitset
是 C++ 标准库中的固定大小位集合容器,用于高效处理二进制位操作。
基本特性
- 固定大小:在编译时确定大小
- 高效存储:每个位只占 1 bit
- 支持位运算:直接支持与、或、异或等位操作
常用操作
1. 构造和初始化
1 2 3 4 5
| #include <bitset>
bitset<8> b1; bitset<8> b2(0xAF); bitset<8> b3("1100");
|
2. 访问和修改
1 2 3 4 5 6 7
| bitset<8> bs("10101010");
bs[0] = 1; bool bit = bs[2]; bs.set(3); bs.reset(1); bs.flip(4);
|
3. 查询信息
1 2 3 4 5
| bs.size(); bs.count(); bs.any(); bs.none(); bs.all();
|
4. 位运算
1 2 3 4 5 6 7
| bitset<8> a("11001100"); bitset<8> b("10101010");
auto c = a & b; auto d = a | b; auto e = a ^ b; auto f = ~a;
|
5. 转换
1 2 3
| bs.to_string(); bs.to_ulong(); bs.to_ullong();
|
应用场景
- 状态标志存储
- 位掩码操作
- 集合运算(最多64个元素)
- 位级算法优化