bitset的运算就像一个普通的整数一样,可以进行与(&)、或(|)、异或(^)、左移(>)操作。

#include

初始化bitset对象的方法

代码 目的
bitset b; b有n位,每位都为0
bitset b(u); b是unsigned long型u的一个副本
bitset b(s); b是string对象s中含有的位串的副本
bitset b(s, pos, n); b是s中从位置pos开始的n个位的副本

bitset操作

代码 目的
b.any() b中是否存在置为1的二进制位?
b.none() b中不存在置为1的二进制位吗?
b.count() b中置为1的二进制位的个数
b.size() b中二进制位的个数
b[pos] 访问b中在pos处的二进制位
b.test(pos) b中在pos处的二进制位是否为1?
b.set() 把b中所有二进制位都置为1
b.set(pos) 把b中在pos处的二进制位置为1
b.reset() 把b中所有二进制位都置为0
b.reset(pos) 把b中在pos处的二进制位置为0
b.flip() 把b中所有二进制位逐位取反
b.flip(pos) 把b中在pos处的二进制位取反
b.to_ulong() 用b中同样的二进制位返回一个unsigned long值
os << b 把b中的位集输出到os流