bitset類功能記錄

2021-08-07 11:45:06 字數 1674 閱讀 2727

類似於vector後面<>中的資料型別,bitset<>括號中記錄了長度。

#include 

#include

#include

using

namespace

std;

int main()

1、用unsigned值初始化

規則:

如果bitset型別長度大於unsigned long值的二進位制位數,則其餘的高階位置為0;

如果bitet型別長度小於unsigned long值的二進位制位數,則只使用unsigned值中的低階位,超過bitet型別長度的高階位將被丟棄。

//例子0xffff在32位機上為 1111 1111 1111 1111 0000 0000 0000 0000

bitset

<16> a(0xffff); //a為16位全為1,超出部分的0丟棄

bitset

<32> b(0xffff);//b的0到15位全是1,剩下16到31是0,bitset位數32與unsigned long 長度相同

bitset

<64> c(0xffff);//bitset為64位大於unsigned long 32, 31到63自動置零

2、用string初始化bitset

規則 從string物件讀入位集的順序是從右向左

string str("1101");

bitset

<32> a(str); //a中順序為1011000..00,超出的位全補零

string s("111111100000111101010111");

bitset

<32> b(s,5,4); //從s[5]開始讀4位,為1100

bitset

<32> c(s,s.size()-4); //讀後四位(從s[s.size()-4]一直讀到結束

bitset

<32> a("10010010");

a.any();//a中是否有1,返回bool變數,有1為true,全為0返回false

a.none();//a中是否沒1,true為全0,false為至少有乙個1

a.count();//返回a中1的個數

a.size();//返回二進位制位數

int k=a[i];//訪問a中i處的位

a.set();//將a全置1;

a.set(i);//將a中第i位置1;

a.reset();//將a全置0;

a.reset(i);//將a中第i位置0;

a.flip();//全位取反

a.flip(i);//i位取反

a.to_ulong();//返回a中二進位制數的unsigned long數

os

#include 

#include

#include

#include

using

namespace

std;

int main()

catch (exception err)

後的錯誤操作會丟擲異常

unsigned

long k=a.to_ulong();

}

Java 資料結構 Bitset類

乙個bitset類建立一種特殊型別的陣列來儲存位值。bitset中陣列大小會隨需要增加。這和位向量 vector of bits 比較類似。這是乙個傳統的類.public static void main string args system.out.println initial pattern ...

近容器之bitset類(C )

近容器常見的有4種 c語言式陣列 string bitset valarray。bitset類 使位集合更容易生成和操作。bitset 位集合 是用於表示位標誌的集合。bitset在編譯時是固定長度的。include const int size 1024 int bitnumber 1 bitse...

PHP 自定義日誌記錄功能類

此文作者的日誌是單一日誌,加數學序號擴充套件。我現在用的是日期日誌,應用功能環境不一樣,實現的東西有些不同。對於現在的應用程式來說,日誌的重要性是不言而喻的。很難想象沒有任何日誌記錄功能的應用程式執行在生產環境中。日誌所能提供的功能是多種多樣的,包括記錄程式執行時產生的錯誤資訊 狀態資訊 除錯資訊和...