二進(jìn)制與位運(yùn)算

位運(yùn)算表.png
位運(yùn)算表2.png

Bit Set STL的使用

!= 返回真如果兩個(gè)bitset不相等。 
== 返回真如果兩個(gè)bitset相等蓄氧。 
&= 完成兩個(gè)bitset間的與運(yùn)算函似。 
^= 完成兩個(gè)bitset間的異或運(yùn)算。 
|= 完成兩個(gè) 
~ 反置bitset (和調(diào)用 flip()類似) 
<<= 把bitset向左移動(dòng) 
>>= 把bitset向右移動(dòng) 
[x] 返回第x個(gè)位的引用 
= 相當(dāng)于構(gòu)造函數(shù)的直接賦值喉童。

構(gòu)造

無(wú)參構(gòu)造撇寞,截取,字符串構(gòu)造堂氯,十進(jìn)制構(gòu)造

bitset<4> bitset1;  //無(wú)參構(gòu)造蔑担,長(zhǎng)度為4,默認(rèn)每一位為0

    bitset<8> bitset2(12);  //長(zhǎng)度為8咽白,二進(jìn)制保存啤握,前面用0補(bǔ)充

    string s = "100101";
    bitset<10> bitset3(s);  //長(zhǎng)度為10,前面用0補(bǔ)充
    
    char s2[] = "10101";
    bitset<13> bitset4(s2);  //長(zhǎng)度為13晶框,前面用0補(bǔ)充

    cout << bitset1 << endl;  //0000
    cout << bitset2 << endl;  //00001100
    cout << bitset3 << endl;  //0000100101
    cout << bitset4 << endl;  //0000000010101
bitset<2> bitset1(12);  //12的二進(jìn)制為1100(長(zhǎng)度為4)排抬,但bitset1的size=2,只取后面部分授段,即00

    string s = "100101";  
    bitset<4> bitset2(s);  //s的size=6蹲蒲,而bitset的size=4,只取前面部分侵贵,即1001

    char s2[] = "11101";
    bitset<4> bitset3(s2);  //與bitset2同理悠鞍,只取前面部分,即1110

    cout << bitset1 << endl;  //00
    cout << bitset2 << endl;  //1001
    cout << bitset3 << endl;  //1110

函數(shù)方法

count數(shù)一的數(shù)量模燥,size是大小,test(x)如果x位是1掩宜,返回true蔫骂,否則false

any,含1牺汤,none辽旋,無(wú)1,all,全1

bitset<8> foo ("10011011");

    cout << foo.count() << endl;  //5 〔古摺(count函數(shù)用來(lái)求bitset中1的位數(shù)码耐,foo中共有5個(gè)1
    cout << foo.size() << endl;   //8  (size函數(shù)用來(lái)求bitset的大小溶其,一共有8位

    cout << foo.test(0) << endl;  //true ∩取(test函數(shù)用來(lái)查下標(biāo)處的元素是0還是1,并返回false或true瓶逃,此處foo[0]為1束铭,返回true
    cout << foo.test(2) << endl;  //false  (同理厢绝,foo[2]為0契沫,返回false

    cout << foo.any() << endl;  //true  (any函數(shù)檢查bitset中是否有1
    cout << foo.none() << endl;  //false ∥艉骸(none函數(shù)檢查bitset中是否沒(méi)有1
    cout << foo.all() << endl;  //false ⌒竿颉(all函數(shù)檢查bitset中是全部為1
bitset<8> foo ("10011011");

    cout << foo.flip(2) << endl;  //10011111  (flip函數(shù)傳參數(shù)時(shí)靶病,用于將參數(shù)位取反会通,本行代碼將foo下標(biāo)2處"反轉(zhuǎn)",即0變1嫡秕,1變0
    cout << foo.flip() << endl;   //01100000 】视铩(flip函數(shù)不指定參數(shù)時(shí),將bitset每一位全部取反

    cout << foo.set() << endl;    //11111111 ±パ省(set函數(shù)不指定參數(shù)時(shí)驾凶,將bitset的每一位全部置為1
    cout << foo.set(3,0) << endl;  //11110111  (set函數(shù)指定兩位參數(shù)時(shí)掷酗,將第一參數(shù)位的元素置為第二參數(shù)的值调违,本行對(duì)foo的操作相當(dāng)于foo[3]=0
    cout << foo.set(3) << endl;    //11111111  (set函數(shù)只有一個(gè)參數(shù)時(shí)泻轰,將參數(shù)下標(biāo)處置為1

    cout << foo.reset(4) << endl;  //11101111 〖技纭(reset函數(shù)傳一個(gè)參數(shù)時(shí)將參數(shù)下標(biāo)處置為0
    cout << foo.reset() << endl;   //00000000  (reset函數(shù)不傳參數(shù)時(shí)將bitset的每一位全部置為0
bitset<8> foo ("10011011");

    string s = foo.to_string();  //將bitset轉(zhuǎn)換成string類型
    unsigned long a = foo.to_ulong();  //將bitset轉(zhuǎn)換成unsigned long類型
    unsigned long long b = foo.to_ullong();  //將bitset轉(zhuǎn)換成unsigned long long類型

    cout << s << endl;  //10011011
    cout << a << endl;  //155
    cout << b << endl;  //155
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末浮声,一起剝皮案震驚了整個(gè)濱河市虚婿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泳挥,老刑警劉巖然痊,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異屉符,居然都是意外死亡剧浸,警方通過(guò)查閱死者的電腦和手機(jī)锹引,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)唆香,“玉大人嫌变,你說(shuō)我怎么就攤上這事」” “怎么了腾啥?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)虑凛。 經(jīng)常有香客問(wèn)我碑宴,道長(zhǎng),這世上最難降的妖魔是什么桑谍? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任延柠,我火速辦了婚禮,結(jié)果婚禮上锣披,老公的妹妹穿的比我還像新娘贞间。我一直安慰自己,他們只是感情好雹仿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布增热。 她就那樣靜靜地躺著坊谁,像睡著了一般础废。 火紅的嫁衣襯著肌膚如雪房资。 梳的紋絲不亂的頭發(fā)上较曼,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音剑鞍,去河邊找鬼翔冀。 笑死摊阀,一個(gè)胖子當(dāng)著我的面吹牛人断,可吹牛的內(nèi)容都是我干的吭从。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼恶迈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼涩金!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起暇仲,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤步做,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后奈附,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體辆床,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年桅狠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡中跌,死狀恐怖咨堤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情漩符,我是刑警寧澤一喘,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站嗜暴,受9級(jí)特大地震影響凸克,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜闷沥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一萎战、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧舆逃,春花似錦蚂维、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至奄妨,卻和暖如春涂籽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背砸抛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工评雌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锰悼。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓柳骄,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親箕般。 傳聞我的和親對(duì)象是個(gè)殘疾皇子耐薯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354