引用时声明
#include <bitset>
运用此容器可以方便的对二进制数进行位运算
可以如下声明一个该类型变量:
bitset
其中varm为变量名。
N表示该类型二进制位数。如 N = 1,那么a = 0 或 1 ; N = 2,那么a = 01 / 10 / 11 / 00
M表示变量varm的初始值,M为十进制数。
M可以缺省,此时默认M = 0
如声明 a = 11\(_{(2)}\)
bitset<2> a(3);
如果需要声明一个变量,将其第27位置1,常规的做法是使用 |=
// option1:
int a = 0;
a |= 1 << 27;
下面用bitset将一个数的27位置1
// option2:
bitset<30> a(0);
a[27] = 1;
也可以用 set(pos
) 函数
// option3:
bitset<30> a(0);
a.set(27);
运用 reset(pos
)函数,也可以用[ ]
,类似置位
a.any()
// a若每一位都为0,返回false;否则返回true
a.none()
// a若每一位都为0,返true;否则返回false
a.count()
// 统计a为1的位数,返回位数
a.flip(`pos`) // 翻转第pos位
a[`pos`].flip() // 翻转第pos位
a.flip() // 翻转每一位
原文:https://www.cnblogs.com/popodynasty/p/13297318.html