bitset

首先看看bitset的定義:

A bitset stores bits (elements with only two possible values: 0 or 1, true or false, ...).

該類型的表現(xiàn)形式就是一系列的0/1峦树,而且其每一位真的就是一個bit辣辫,不是 int 的 4bits/8bits,所以更節(jié)省空間魁巩。

template <size_t N> class bitset;

需要注意的是急灭,因為是模板的 size_t N,所以需要在編譯期確定其大小谷遂,并不能通過變量動態(tài)控制 bitset 的 size葬馋。

bitset<N> 中元素的編號是從右向左,由 0 到 N-1 逐漸增加肾扰。

構(gòu)造

std::bitset<8> foo;
std::bitset<16> bar (0xfa2);  // 0000 1111 1010 0010
std::bitset<16> baz (std::string("0101111001")); // 0000000101111001

std::bitset (
string,  // source
pos,     // start position
n,         // number of characters to read
charT zero = charT('0'),  // character represent 0
charT one = charT('1'));  // character represent 1

訪問

[]
test(size_t pos) // read-only, range safe.
size()  
count() // number of bits set as '1', 注意和 size() 區(qū)分
any()  // any bit is '1' ?
none()  // none bit is '1' eq all bits are '0'
all() // all bits are '1'

修改

set -- to 1
reset -- to 0
flip -- from 1 to 0, or from 0 to 1

bitset& set() // set all bits to one/true
bitset& set (size_t pos, bool val = true); // set bits[pos] = val
bitset& reset();
bitset& reset (size_t pos);
bitset& flip();
bitset& flip(size_t pos);

轉(zhuǎn)換

可以轉(zhuǎn)換為string, ul, ull

to_string()
to_ulong()
to_ullong()

應(yīng)用示例

// 獲得數(shù)的二進制表示点楼,并進行相應(yīng)操作,此處為反序
uint64_t reverse_bits_v2(uint64_t val) {
    std::string bits = std::bitset<64>(val).to_string();
    std::reverse(bits.begin(), bits.end());
    return std::bitset<64>(bits).to_ulong();
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末白对,一起剝皮案震驚了整個濱河市掠廓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌甩恼,老刑警劉巖蟀瞧,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異条摸,居然都是意外死亡悦污,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門钉蒲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來切端,“玉大人,你說我怎么就攤上這事顷啼√ぴ妫” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵钙蒙,是天一觀的道長茵瀑。 經(jīng)常有香客問我,道長躬厌,這世上最難降的妖魔是什么马昨? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮扛施,結(jié)果婚禮上鸿捧,老公的妹妹穿的比我還像新娘。我一直安慰自己疙渣,他們只是感情好匙奴,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著昌阿,像睡著了一般饥脑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上懦冰,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天灶轰,我揣著相機與錄音,去河邊找鬼刷钢。 笑死笋颤,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的内地。 我是一名探鬼主播伴澄,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼阱缓!你這毒婦竟也來了非凌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤荆针,失蹤者是張志新(化名)和其女友劉穎敞嗡,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體航背,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡喉悴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了玖媚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箕肃。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖今魔,靈堂內(nèi)的尸體忽然破棺而出勺像,到底是詐尸還是另有隱情,我是刑警寧澤错森,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布咏删,位于F島的核電站,受9級特大地震影響问词,放射性物質(zhì)發(fā)生泄漏督函。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一激挪、第九天 我趴在偏房一處隱蔽的房頂上張望辰狡。 院中可真熱鬧,春花似錦垄分、人聲如沸宛篇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叫倍。三九已至偷卧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吆倦,已是汗流浹背听诸。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蚕泽,地道東北人晌梨。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像须妻,于是被迫代替她去往敵國和親仔蝌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,322評論 0 10
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 2,696評論 0 3
  • 超高速音視頻編碼器用法: ffmpeg [options] [[infile options] -i infile...
    吉兇以情遷閱讀 4,603評論 0 4
  • 有些程序需要處理二進制位的有序集荒吏,每位個能包含 0 或 1敛惊。 bitset 類型簡化了位集的處理,使用時必須包含頭...
    LuuilX閱讀 1,788評論 0 0
  • 這幾天看Bloom Filter绰更,因為在java中豆混,并不能像C/C++一樣直接操縱bit級別的數(shù)據(jù),所以只能另想辦...
    小陳阿飛閱讀 825評論 0 2