C++ bitset容器用法简单介绍

C++类库 <bitset>

引用时声明

#include <bitset>

运用此容器可以方便的对二进制数进行位运算

声明 bitset 对象

可以如下声明一个该类型变量:

bitsetvarm (M)

其中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);

实际应用

1. 置位

如果需要声明一个变量,将其第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);

2.复位

运用 reset(pos)函数,也可以用[ ],类似置位

3.检验是否有位为1

a.any()
// a若每一位都为0,返回false;否则返回true

4.检验是否每一位都为0

a.none()
// a若每一位都为0,返true;否则返回false

5.计数

a.count()
// 统计a为1的位数,返回位数

6.翻转

a.flip(`pos`) // 翻转第pos位
a[`pos`].flip() // 翻转第pos位
a.flip() // 翻转每一位
posted @ 2020-07-14 09:31  popozyl  阅读(330)  评论(0编辑  收藏  举报