bitset用来处理二进制位非常方便。头文件是#include <bitset>,在std命名空间里面~
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include <bitset> #include <iostream> using namespace std; int main() { bitset<5> b("11"); //5表示5个二进位 // 初始化方式: // bitset<5> b; 都为0 // bitset<5> b(u); u为unsigned int,如果u = 1,则被初始化为10000 // bitset<5> b(s); s为字符串,如"1101" -> "10110" // bitset<5> b(s, pos, n); 从字符串的s[pos]开始,n位长度 for(int i = 0; i < 5; i++) cout << b[i]; cout << endl << b.any(); //b中是否存在1的二进制位 cout << endl << b.none(); //b中不存在1吗? cout << endl << b.count(); //b中到1的二进制位的个数 cout << endl << b.size(); //b中二进制位到个数 cout << endl << b.test(2); //测试下标为2处是否二进制位为1 b.set(4); //把b的下标为4处置1 b.reset(); //所有位归零 b.reset(3); //b的下标3处归零 b.flip(); //b的所有二进制位逐位取反 unsigned long a = b.to_ulong(); //b转换为unsigned long类型 return 0; } |
❤ 点击这里 -> 订阅《PAT | 蓝桥 | LeetCode学习路径 & 刷题经验》by 柳婼