开多个bitset和bitset的基本使用
生活随笔
收集整理的這篇文章主要介紹了
开多个bitset和bitset的基本使用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1 #include<bits/stdc++.h>
2 using namespace std;
3 int main(){
4 //bitset 使用整數(shù)初始化bitset
5
6 //申請三個bitset(長為10位)
7 bitset<10> bs[3];
8
9 //初始化第三個bitset(bitset默認所有位為0,可以用數(shù)字對其初始化:
10 //數(shù)字的二進制形式與bitset的下標(biāo)對應(yīng),二進制的中的低位對應(yīng)于bitset下標(biāo)中的地位,
11 //例如20的二進制10100,則bitset[0 1 2 3 ...]=0 0 1 0 1 0 0 0...)
12 bs[2]=20;
13 //訪問
14 //輸出第三個bitset 0位置的布爾值。
15 cout<<"bs[2][0] :"<<bs[2][0]<<endl;
16 //bitset間的按位與或
17 //輸出第三個bitset 的全部位置的值
18 cout<<"bs[2] :"<<bs[2]<<endl;
19
20 cout<<"before |"<<bs[0]<<endl;
21 bs[0]=bs[0]|bs[2];
22 cout<<"after |"<<bs[0]<<endl;
23
24 cout<<"before &"<<bs[0]<<endl;
25 bs[0]=bs[0]&bs[1];
26 cout<<"after &"<<bs[0]<<endl;
27
28 cout<<"before ~"<<bs[0]<<endl;
29 bs[0]=~bs[1];
30 cout<<"after ~"<<bs[0]<<endl;
31
32
33
34 //以下為轉(zhuǎn)載。---------------------------
35
36 //使用字符串初始化bitset
37 //注意:使用string初始化時從右向左處理,類似于字符串是書寫體,如下初始化的各個位的值將是110,而非011
38 // string bitval("001100001");
39 // bitset<15> bs1(bitval);
40 bitset<15> bs1(123);
41 //輸出各位
42 cout<<"bs1[0] is "<<bs1[0]<<endl;
43 cout<<"bs1[1] is "<<bs1[1]<<endl;
44 cout<<"bs1[2] is "<<bs1[2]<<endl;
45 //cout輸出時也是從右邊向左邊輸出
46 cout<<bs1<<endl;
47
48
49 //bitset的方法-----------------
50
51 //any()方法如果有一位為1,則返回1
52 cout<<"bs1.any() = "<<bs1.any()<<endl;
53
54 //none()方法,如果有一個為1none則返回0,如果全為0則返回1
55 bitset<3> bsNone;
56 cout<<"bsNone.none() = " <<bsNone.none()<<endl;
57
58 //count()返回幾個位為1
59 cout<<"bs1.count() = "<<bs1.count()<<endl;
60
61 //size()返回位數(shù)
62 cout<<"bs1.size() = "<<bs1.size()<<endl;
63
64
65 //flip()返回按位取反后的bitset
66 bitset<15> bs1Flip = bs1.flip();
67 cout<<"bs1Flip = "<<bs1Flip<<endl;
68
69 //to_ulong 二進制轉(zhuǎn)為十進制數(shù)。
70 unsigned long val = bs1.to_ulong();
71 cout<<val;
72
73
74 return 0;
75 }
?
?output:
bs[2][0]? :0
bs[2] :0000010100
before |0000000000
after? |0000010100
before &0000010100
after? &0000000000
before ~0000000000
after? ~1111111111
bs1[0] is 1
bs1[1] is 1
bs1[2] is 0
000000001111011
bs1.any() = 1
bsNone.none() = 1
bs1.count() = 6
bs1.size() = 15
bs1Flip = 111111110000100
32644[Finished in 1.2s]
轉(zhuǎn)載于:https://www.cnblogs.com/paulzjt/p/6435545.html
超強干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的开多个bitset和bitset的基本使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jQuery dataTable 操作个
- 下一篇: 自然数幂求和方法1:扰动法(求两次)