#include < bitset >
bitset< n > b; b有n位,每位都为0,参数n可以为一个表达式. 如bitset<5> b0;则”b0”为”00000”;
bitset< n > b(unsigned long u); b有n位,并用u赋值;如果u超过n位,则顶端被截除 如:bitset<5>b0(5);则”b0”为”00101”;
bitset< n > b(string s); b是string对象s中含有的位串的副本 string bitval ( “10011” ); bitset<5> b0 ( bitval4 ); 则”b0”为”10011”;
bitset重载了[]运算符,故可以像bool数组那样赋值 bi[2] = 1; 这样就能将第二位赋值为1
b1 = b2 & b3;//按位与 b1 = b2 | b3;//按位或 b1 = b2 ^ b3;//按位异或 b1 = ~b2;//按位补 b1 = b2 << 3;//移位 int one = b1.count();//统计1的个数
bool any( ) 是否存在置为1的二进制位?和none()相反 bool none( ) 是否不存在置为1的二进制位,即全部为0?和any()相反. size_t size( ) 二进制位的个数 flip() 把所有二进制位逐位取反 set() 把所有二进制位都置为1 reset() 把所有二进制位都置为0 unsigned long to_ulong( ) 用同样的二进制位返回一个unsigned long值 string to_string () 返回对应的字符串.
UVALive 7272