c++中bitset的用法
时间: 2024-03-15 14:38:17 浏览: 81
详解C++ bitset用法
bitset是C++中的一个类库,用于管理一系列bit位,即二进制串。它类似于数组,但每个元素只能是0或1且仅用1bit的空间。bitset常用于位运算和压缩存储等场景。以下是bitset的用法:
1. 头文件引入
```c++
#include <bitset>
```
2. 声明和初始化
```c++
bitset<4> bitset1; // 无参构造,长度为4,默认每一位为0
bitset<8> bitset2(12); // 长度为8,二进制保存,前面用0补充
string s = "100101";
bitset<10> bitset3(s); // 长度为10,前面用0补充
char s2[] = "10101";
bitset<13> bitset4(s2); // 长度为13,前面用0补充
```
3. bitset的常用操作
```c++
cout << bitset1 << endl; // 输出:0000
cout << bitset2 << endl; // 输出:00001100
cout << bitset3 << endl; // 输出:0000100101
cout << bitset4 << endl; // 输出:0000000010101
bitset1.set(); // 将所有位都设置为1
bitset2.set(2, 0); // 将第2位设置为0
bitset3.reset(1); // 将第1位设置为0
bitset4.flip(); // 将所有位取反
cout << bitset1 << endl; // 输出:1111
cout << bitset2 << endl; // 输出:00001000
cout << bitset3 << endl; // 输出:0000100101
cout << bitset4 << endl; // 输出:1111111101010
cout << bitset1.count() << endl; // 输出:4,统计1的个数
cout << bitset2.any() << endl; // 输出:true,判断是否有1
cout << bitset3.none() << endl; // 输出:false,判断是否全为0
cout << bitset4.to_ulong() << endl; // 输出:1730,将二进制转为十进制
```
阅读全文