一、简介bitset
bitset是STL中一种bool类型的动态数组,可以近似的看作为vector<boo> 类型,头文件为<bitset>
主要用来二进制与十进制的相互转换
二、基本用法
bitset的创建
bitset<4> B;//无参构造,长度为4,默认每一位为0//0000
bitset<8> B(12);//长度为8,二进制保存,前面用0补充//00001100
bitset<2> B(12);//12的二进制为1100(长度为4),但B的size=2,只取后面部分即00
string s="100101";//用字符串构造时,字符串只能包含 '0' 或 '1'
bitset<10> B(s);//长度为10,前面用0补充//0000100101
bitset<10> B(s,1,4)//s中从下标1开始,长度为4的子串前面用0补充//0000000010
char s2[]="10101";
bitset<13> B(s2); //长度为13,前面用0补充//0000000010101
---------------------------------------------------------------------------
其他操作
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流