1. 程式人生 > 實用技巧 >C++ bitset容器用法簡單介紹

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() // 翻轉每一位