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進製制的最低位。將上一步的商再...