bitset类是用来处理位集的,头文件#include<bitset>
a、定义和初始化
bitset<32> bitvec;长度值必须是常量表达式。//位集合的位置从0-31;
使用unsinged值和string初始化bitset对象。使用string对象初始化bitset是,是从string对象读入位集的顺序是从右向左;也就是说string对象的最右边字符(即下标最大的那个字符)用来初始化bitset对象的低阶位(即下标为0的位)。
bitset对象上的操作:
1、b.any() b中是否存在为1的二进制位
2、b.none() b中不存在为1的二进制位
3、b.count() b中位为1的个数
4、b.size() b的位数
5、b[pos] b中pos位的值
6、b.test(pos) b中pos位是否为1
7、b.set() 把b中都置为1
8、b.set(pos) 把b中pos位置为1
9、b.reset() 把b中都置为0
10、b.reset(pos) 把b中pos位置为0
11、b.flip() 把b中所有位按位取反
12、b.flip(pos) 把b中pos位取反
13、b.to_ulong() 把b返回一个unsigned long 的值
14、os<<b 把b中位集输出到os流