bitset用法
时间: 2023-07-24 13:04:27 浏览: 96
bitset是C++中的一个标准库,用于位运算和位存储操作。它可以将一组位(0和1)看作是一个整体,并提供了一些方法来操作这个整体。
以下是bitset类的一些常用方法:
1. 构造函数
bitset有多个构造函数,其中最常用的是接受一个整数作为参数的构造函数。例如:
```c++
bitset<8> bits(0b10101010);
```
这将创建一个包含8位的bitset对象,其中的位序列为10101010。
2. 大小
可以使用size()函数获取bitset对象中位的数量,例如:
```c++
bitset<8> bits(0b10101010);
cout << bits.size() << endl; // 输出8
```
3. 操作符
bitset类重载了许多操作符,可以使用这些操作符对位进行操作。例如:
```c++
bitset<8> bits1(0b10101010);
bitset<8> bits2(0b01010101);
// 位与操作
bitset<8> result = bits1 & bits2;
cout << result << endl; // 输出00000000
// 位或操作
result = bits1 | bits2;
cout << result << endl; // 输出11111111
// 位异或操作
result = bits1 ^ bits2;
cout << result << endl; // 输出11111111
// 取反操作
result = ~bits1;
cout << result << endl; // 输出01010101
```
4. 访问位
可以使用[]操作符访问bitset对象中的位,例如:
```c++
bitset<8> bits(0b10101010);
cout << bits[0] << endl; // 输出0
cout << bits[1] << endl; // 输出1
```
5. 设置和重置位
可以使用set()函数将位设置为1,使用reset()函数将位重置为0,例如:
```c++
bitset<8> bits(0b10101010);
bits.set(0);
cout << bits << endl; // 输出10101011
bits.reset(1);
cout << bits << endl; // 输出10101001
```
这些只是bitset类的一些常用方法,更多方法可以查看官方文档。
阅读全文