C bitset用法小結

2021-08-22 19:06:29 字數 1767 閱讀 1360

原文:

c++的 bitset 在 bitset 標頭檔案中,它是一種類似陣列的結構,它的每乙個元素只能是0或1,每個元素僅用1bit空間。

常用函式:

bitset<8> foo ("10011011");

cout << foo.count() << endl;  //5  (count函式用來求bitset中1的位數,foo中共有5個1

cout << foo.size() << endl;   //8  (size函式用來求bitset的大小,一共有8位

cout << foo.test(0) << endl;  //true  (test函式用來查下標處的元素是0還是1,並返回false或true,此處foo[0]為1,返回true

cout << foo.test(2) << endl;  //false  (同理,foo[2]為0,返回false

cout << foo.any() << endl;  //true  (any函式檢查bitset中是否有1

cout << foo.none() << endl;  //false  (none函式檢查bitset中是否沒有1

cout << foo.all() << endl;  //false  (all函式檢查bitset中是全部為1

注:test函式會對下標越界作出檢查,而通過 [ ] 訪問元素卻不會經過下標檢查,所以,在兩種方式通用的情況下,選擇test函式更安全一些。

bitset<8> foo ("10011011");

cout << foo.flip(2) << endl;  //10011111  (flip函式傳引數時,用於將引數位取反,本行**將foo下標2處"反轉",即0變1,1變0

cout << foo.flip() << endl;   //01100000  (flip函式不指定引數時,將bitset每一位全部取反

cout << foo.set() << endl;    //11111111  (set函式不指定引數時,將bitset的每一位全部置為1

cout << foo.set(3,0) << endl;  //11110111  (set函式指定兩位引數時,將第一引數位的元素置為第二引數的值,本行對foo的操作相當於foo[3]=0

cout << foo.set(3) << endl;   //11111111  (set函式只有乙個引數時,將引數下標處置為1

cout << foo.reset(4) << endl;  //11101111  (reset函式傳乙個引數時將引數下標處置為0

cout << foo.reset() << endl;   //00000000  (reset函式不傳引數時將bitset的每一位全部置為0

型別轉換。

bitset<8> foo ("10011011");

string s = foo.to_string();  //將bitset轉換成string型別

unsigned long a = foo.to_ulong();  //將bitset轉換成unsigned long類

unsigned long long b = foo.to_ullong();  //將bitset轉換成unsigned long long型別

cout << s << endl;  //10011011

cout << a << endl;  //155

cout << b << endl;  //155

以上內容摘自  舉個栗子、 大佬的部落格。

c bitset 基本用法

bitset儲存二進位制數字。bitset就像乙個bool型別的陣列一樣,但是有空間優化 bitset中的乙個元素一般只佔1 bit,相當於乙個char元素所佔空間的八分之一。bitset中的每個元素都能單獨被訪問,例如對於乙個叫做foo的bitset,表示式foo 3 訪問了它的第4個元素,就像陣...

this用法小結

this主要是用作引用乙個類的當前例項物件,也可以用在擴充套件方法裡面,我主要總結一下前者的主要用途。1.用來限定被相同名字隱藏的類成員。這裡主要指的就是建構函式。比如 public employee4 string name,string id 這是乙個類的建構函式,this.name是之前宣告的...

C bitset類的使用

因為無知而學習,因為學習而更感無知。在刷題過程中遇到不少的位操作,這裡有必要學習一下c 內建的bitset類。歡迎各位指出文中的錯誤。本文主要內容 1.bitset類的函式使用 2.自己實現的mybitset類 主要參考 c primer include 包含標頭檔案,是標準庫的標頭檔案 inclu...