标签:lang out bit 初始 左移 count 一个 出现 reset
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
标签:lang out bit 初始 左移 count 一个 出现 reset
原文地址:https://www.cnblogs.com/spciay/p/13510303.html