对于一个叫做a的bitset:
a.size() 返回大小(位数)
a.count() 返回1的个数
a.any() 返回是否有1
a.none() 返回是否没有1
a.set() 全都变成1
a.set(p) 将第p+1位变成1
a.set(p, x) 将第p+1位变成x
a.reset() 全都变成0
a.reset(p) 将第p+1位变成0
a.flip() 全都取反
a.flip(p) 将第p+1位取反
a.to_ulong() 返回它转换为unsigned long的结果,如果超出范围则报错
a.to_ullong() 返回它转换为unsigned long long的结果,如果超出范围则报错
a.to_string() 返回它转换为string的结果
bitset<4> a ( string("1001"));
bitset<4> b ( string("0011"));
cout << (a^=b) << endl; // 1010
cout << (a&=b) << endl; // 0010
cout << (a|=b) << endl; // 0011
cout << endl << a << endl; // 0011
cout << b << endl << endl; // 0011
cout << (a<<=2) << endl; // 1100
cout << (a>>=1) << endl; // 0110
cout << endl << a << endl; // 0110
cout << b << endl << endl; // 0011
cout << (~b) << endl; // 1100
cout << (b<<1) << endl; // 0110
cout << (b>>1) << endl; // 0001
cout << (a==b) << endl; // false (0110==0011)
cout << (a!=b) << endl; // true (0110!=0011)
cout << (a&b) << endl; // 0010
cout << (a|b) << endl; // 0111
cout << (a^b) << endl; // 0101