轉自此人博客 #include<bister> using std::bitset; 一句話定義:可自定義位數,用作記錄二進位的數據類型. 一,定義和初始化 bitset<n> b; //b有n位,每位都為0; bitset<n> b(u); //b是unsigned long型u的副本 bitse ...
#include<bister>
using std::bitset;
一句話定義:可自定義位數,用作記錄二進位的數據類型.
一,定義和初始化
bitset<n> b; //b有n位,每位都為0;
bitset<n> b(u); //b是unsigned long型u的副本
bitset<n> b(s); //b是string對象s中含有n位字元串的副本
bitset<n> b(s, pos, n); //b是s中從pos位置開始的n個位置的副本
bitset<n> b(s,pos); //b從s的pos位置開始取值到s末尾(註取的值從b的右端開始)
註:①n定義的位數在初始化時按初始值填充,賦值超出的範圍捨去,空餘的以零填充.
②bitset從string對象讀入位集時按從右到左的順序.
二,操作
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; //返回一個同值得unsigned long值
os << b; //把b中位集輸出