C++ bitset容器用法簡單介紹
阿新 • • 發佈:2020-07-14
C++類庫 <bitset>
引用時宣告
#include <bitset>
運用此容器可以方便的對二進位制數進行位運算
宣告 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);
實際應用
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() // 翻轉每一位