C++ bitset的妙用

bitset是類似於bool數組一樣的東西,但是它的每個位置只佔1bit

可以在向二進制轉換的時候使用,特別是涉及到了負數不好操作的時候

構造:

頭文件; #include<bitset>

<常量>

const size=10;//表示位數

bitset<size>bit; //自動初始化爲0

bitset<size>bit(整數_各種類型都可以); //如果是浮點數會向下取整

bitset<size>bit(string類型的01串);

若未超出size:高位補0

若超出size:整數只取低size位,string串只取前size位

操作

可以直接賦值 bit=123;

可以直接cout<<bit;//將所有數位都輸出

也可以使用下標逐個遍歷,類似於數組

單個bitset對象可以進行移位操作

相同大小的bitset對象之間可以進行按位操作

還有各種內部函數,對於一個叫做bit的bitset:

bit.size()		返回大小(位數) 
bit.count() 		返回1的個數 
bit.any() 		返回是否有1 
bit.none() 		返回是否沒有1 
bit.set() 		全都變成1
bit.set(p) 		將第p + 1位變成1(bitset是從第0位開始的!) 
bit.set(p, x) 		將第p + 1位變成x 
bit.reset() 		全都變成0 
bit.reset(p) 		將第p + 1位變成0 
bit.flip() 		全都取反 
bit.flip(p) 		將第p + 1位取反 
bit.to_ulong() 		返回它轉換爲unsigned long的結果,如果超出範圍則報錯 
bit.to_string() 	返回它轉換爲string的結果

對於應用實例:

2018年第九屆藍橋杯省賽第二題即考到了向二進制的轉換,使用bitset大大減少了思維量和編碼量

https://blog.csdn.net/qq_44786250/article/details/104301602

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章