c++中bitset的使用
在对于数据量很大的情况下,使用bitset
是个不错的选择。下面我给出一些平时不大能想起来的处理bitset 的方法。
1. bitset
的构造方法
- 使用默认构造器,每位填充0。
void test10(){
bitset<5> bs1;
cout << bs1<<"\n";//默认构造器,直接输出5位0
}
- 使用一个整数作为参数。【在构造的时候,会将这个整数转换成相应的二进制数,然后对bitset进行填充】
void test10(){
bitset<5> bs1(5);
cout << bs1<<"\n";//将数值转换成二进制,不够的高位补0 => 输出00101
}
- 使用一个0/1字符串对bitset进行填充。
void test10(){
bitset<5> bs1("1111");
cout << bs1<<"\n";//如果填充的字符串不够位数,则在其前补0 -> 输出01111
}
2. 常用方法
- 1.可以对两个bitset进行与操作,如下代码所示
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<bitset>
using namespace std;
int main(){
bitset<5> bs2(8);
bitset<5> bs3(9);
cout << "bs2="<< bs2<<endl;
cout << "bs3="<<bs3<<endl;
cout << "bs2 & bs3 = " << (bs2 & bs3)<<endl;
}
执行结果如下:
bs2=01000
bs3=01001
bs2 & bs3 = 01000