bitset 10進製轉2進製 2進製各種操作

2021-09-12 21:09:19 字數 1901 閱讀 6087

bitset儲存二進位制數字。

bitset就像乙個bool型別的陣列一樣,但是有空間優化。

bitset中的每個元素都能單獨被訪問,例如對於乙個叫做a的bitset,表示式a[3]訪問了它的第4個元素,就像陣列一樣。

(但是輸出單獨訪問結果不能用printf,和bitset有關的輸出都用cout)

另外bitset的大小在編譯時就需要確定,也就是說bitset<>的尖括號中寫的是大小。

#include #include using namespace std;

bitset<32> a(string("11111"));//注意是右對齊

bitset<2> b(string("10101"));//過長從頭開始取

bitset<32> c(16);//儲存進乙個int的常用寫法

bitset的運算就像乙個普通的整數一樣,可以進行與(&)、或(|)、異或(^)、左移(<>)操作。

b.to_string()  轉換為字串

初始化bitset物件的方法

bitsetb;

b有n位,每位都為0

bitsetb(u);

b是unsigned long型u的乙個副本

bitsetb(s);

b是string物件s中含有的位串的副本

bitsetb(s, pos, n);

b是s中從位置pos開始的n個位的副本

bitset操作

b.any()

b中是否存在置為1的二進位制位?

b.none()

b中不存在置為1的二進位制位嗎?

b.count()

b中置為1的二進位制位的個數

b.size()

b中二進位制位的個數

b[pos]

訪問b中在pos處的二進位制位

b.test(pos)

b中在pos處的二進位制位是否為1?

b.set()

把b中所有二進位制位都置為1

b.set(pos)

把b中在pos處的二進位制位置為1

b.reset()

把b中所有二進位制位都置為0

b.reset(pos)

把b中在pos處的二進位制位置為0

b.flip()

把b中所有二進位制位逐位取反

b.flip(pos)

把b中在pos處的二進位制位取反

b.to_ulong()

用b中同樣的二進位制位返回乙個unsigned long值

os <

把b中的位集輸出到os流

原創內容 

任意10進製轉n位 2進製(包括負數)  此處n取8

b.to_string()  轉換為字串

10進製轉2進製

題目 將10進製數字轉換為2進製。思考 進製轉換有三種情況。十進位制轉二,八,十六進製制 三種轉化的方法類似,我重點說十進位制轉二進位制的方法,其餘兩種情況可以模擬。十進位制轉二進位制 方法 10進製數字,整數部分除2後每次餘數反向取 小數部分乘2直到小數部分為0 特殊情況取位數 將整數部分正向取。...

C 實現10進製轉2進製

這幾天在複習計算機原理,看到二進位制忽然想到二進位制轉10進製的公式,然後轉念一想10進製轉二進位制的公式好像沒印象,那索性自己寫出來。結果學渣的我發現,並不能寫出來!什麼數列,對數,xx函式忘得一乾二淨,而且需要有需要判斷的地方,於是崩潰了,以前代數題並沒寫過條件啊 索性用c 搞出來 雖然在c 裡...

10進製轉2進製和16進製制

看到論壇說面試遇到,就嘗試寫 public class test public static string tobinary int n return temp.reverse tostring 10進製轉16進製制 將給定的十進位制整數除以基數16,餘數便是等值的16進製制的最低位。將上一步的商再...