546. 移除盒子(難) - 8月15日
阿新 • • 發佈:2020-08-15
bitset
1.初始化一個bitset
bitset <8> b(6); // 把數字6初始化為一個8位的二進位制
2.以二進位制輸出bitset
cout << b << endl; // 結果:00000110
3.取反
cout << ~b << endl; // 把b的所有位取反
cout << b.flip() << endl; // 把b的所有位取反
cout << b.flip(0) << endl; // 把b的第k位取反
4.異或
bitset <8> b(6); bitset <8> a(5); b ^= a;
5.與運算
bitset <8> b(6);
bitset <8> a(5);
b &= a;
6.非運算
bitset <8> b(6);
bitset <8> a(5);
b |= a;
7.移位運算
cout << (b >> 1) << endl; // 右移一位
cout << (b << 1) << endl; // 左移一位
8.取第k位
bitset <8> b(6); // b為00000110 cout << b[2] << endl; // 第2位為1
9.出現1的個數
bitset <8> b(6);
cout << b.count() << endl; // 輸出2
10.是否出現1
bitset <8> b(6);
cout << b.any() << endl; // 輸出1
11.是否全為0
bitset <8> b(6);
cout << b.none() << endl; // 輸出0
12.全置為1
bitset <8> b(6); cout << b.set() << endl; // 輸出:11111111
13.把某位置為k
bitset <8> b(6);
cout << b.set(0, 1) << endl; // 輸出00000111
14.全置為0
bitset <8> b(6);
cout << b.reset() << endl; // 輸出:00000000