日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STL之bitset

發(fā)布時(shí)間:2024/9/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STL之bitset 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

bitset是C++的類庫,它便于我們管理一系列的bit位。

1.使用前加上頭文件:

#include <bitset>using namespace std;//2.bitset的構(gòu)造:bitset<bitNum>b; //具有bitNUm位的b/*3.bitset的操作:1)b.all()//b中是否全是12)b.any()//b中是否存在值為1的二進(jìn)制位?3)b.none()//b中不存在值為1的二進(jìn)制位嗎?4)b.count()//b中含有多少個(gè)值為1的二進(jìn)制位5)b[pos]//訪問b在pos位中的二進(jìn)制(最右邊的位為第一位(b[0]))6)b.set()//把b中所有二進(jìn)制位都置為17)b.set(pos)//把b中 b[pos] 置為18)b.reset()//把b中所有二進(jìn)制位都置為09)b.reset(pos)//把b中 b[pos] 置為010)b.flip()//把b中所有二進(jìn)制逐位取反11)b.flip(pos)//把b中b[pos]取反12)b.to_string()//用b中同樣的二進(jìn)制位返回一個(gè)字符串13)b.to_ulong()//用b中同樣的二進(jìn)制位返回一個(gè)unsigned long值14) b.to_ullong()//用b中同樣的二進(jìn)制位返回一個(gè)unsigned long long值 *///測試代碼:#include <iostream>#include <stdio.h>#include <bitset>#include <string>using namespace std;int main(){bitset<5>b,c;//具有5個(gè)bit位的bitset b,c//0的二進(jìn)制:00000//30的二進(jìn)制:01111b = 0;//從右往左,將30的5個(gè)bit位存入bitset b,此時(shí)b相當(dāng)一個(gè)數(shù)組,下標(biāo)從0開始c = 30;//printf("%d",b[0]);編譯,出現(xiàn)錯(cuò)誤,使用bitset不能用printf來訪問cout<<"b: "<<b<<endl;cout<<"c: "<<c<<endl;cout<<"c二進(jìn)制位全是1嗎? "<<c.all()<<endl;cout<<"c 的bit位數(shù) "<<c.size()<<endl;//之前定義的時(shí)候,bitNUm只取了5位cout<<"b中存在為1的二進(jìn)制嗎? "<<b.any()<<" c中存在為1的二進(jìn)制嗎? "<<c.any()<<endl;cout<<"b中不存在為1的二進(jìn)制嗎? "<<b.none()<<" c中不存在為1的二進(jìn)制嗎? "<<c.none()<<endl;cout<<"b中有多少個(gè)為1的二進(jìn)制位? "<<b.count()<<" c中有多少個(gè)為1的二進(jìn)制位? "<<c.count()<<endl;cout<<"b的第1位是:"<<b[0]<<endl;cout<<"b的第5位是:"<<b[4]<<endl;cout<<"c的第1位是:"<<c[0]<<endl;cout<<"c的第5位是:"<<c[4]<<endl;b.set();cout<<"經(jīng)過b.set()后,b變?yōu)?#34;<<b<<endl;b.reset();cout<<"再經(jīng)過b.reset()后,b變?yōu)?#34;<<b<<endl;c.set(0);cout<<"經(jīng)過c.set(0)后,c的第1位(c[0])變?yōu)?"<<c[0]<<endl;c.reset(0);cout<<"經(jīng)過c.reset(0)后,c的第1位變?yōu)?"<<c[0]<<endl;b.flip();cout<<"再經(jīng)過b.flip()后,b變?yōu)?#34;<<b<<endl;b.flip(4);cout<<"經(jīng)過b.flip(4),b的第5位變?yōu)?"<<b[4]<<endl;cout<<"b轉(zhuǎn)換為同樣的字符串形式:";string s = b.to_string();cout<<s<<endl;cout<<"b的二進(jìn)制位返回的unsigned long:";unsigned long x = b.to_ulong();cout<<x<<endl;return 0;}


官方通道: bitset reference C++

總結(jié)

以上是生活随笔為你收集整理的STL之bitset的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。