bitset类似于一个字符数组(且仅含1,0),它的最右边的元素的下标为0,所以直接输出b和按找b[0],b[1]…来输出的结果是相反的
头文件:
#include<bitset>
创建:
bitset [HTML_REMOVED] b //n为字符数组的长度 //b: 00000
bitset [HTML_REMOVED] b(u) //n为字符数组的长度,u为unsignd int,b为u的二进制形式,位数不足n,则在前面补0
eg:bitset <5> b(6) // b:00110
bitset [HTML_REMOVED] b(s) //n为字符数组的长度,s为string类 ,b为s的二进制形式,位数不足n,则在前面补0
eg:bitset <6> b(“110”) // b:000110
bitset [HTML_REMOVED] b(s,pos,m) //n为字符数组的长度,s为string类,从s[pos]开始,截取长度为m的string作为string h,b为h的二进制形式,位数不足n,则在前面补0
eg:s = “101110” ,bitset <5> b(s,1,4) ,则h为”0111” // b: 00111
1的相关处理:
b是否有1:b.any() ,存在1则返回True,反之,返回False
b是否有1:b.none() ,存在1则返回False,反之,返回True
b中1的个数:b.count() ,返回b中1的个数
b[i]是否为1:b.test(i) ,若为1,则返回True, 反之,返回False
将b[i]设置为1:b.set(i)
取反:
所有位取反:b.flip();
第i位取反:b.flip(i);
归零:
所有位归零:b.reset();
第i位归零:b.reset(i);
元素个数:
b.size()返回b的元素个数