bitset的函数以及赋值方式、性质
bitset<length> bt;
bt.size(); //返回大小(位数)
bt.count(); //返回 1 的个数
bt.any(); // 返回是否有 1
bt.none(); // 返回是否没有 1
bt.set(); // 全都变成 1
bt.set(p); // 将第 p + 1 位变成 1
bt.set(p, x); // 将第 p + 1 位变成 x
bt.reset(); // 全都变成 0
bt.reset(p); // 将第 p + 1 位变成 0
bt.flip(); // 全都取反
bt.flip(p); // 将第 p + 1 位取反
bt.to_ulong(); // 返回它转换为 unsigned long 的结果,如果超出范围则报错
bt.to_ullong(); // 返回它转换为 unsigned long long 的结果,如果超出范围则报错
bt.to_string(); // 返回它转换为 string 的结果
CODE
#include <bits/stdc++.h>
using namespace std;
bitset<11> bt;
int main() {
int x = 60;
bitset<60> A(x); //把x的二进制放入A
bt[0] = 1; //把第一位置成1
bt.set(4); // 把第四位置成1
cout << bt << endl;
bt.flip(); // 所有位取反
cout << bt << endl;
bt.reset(); // 全部位重置为0
cout << bt << endl;
if(bt.none())
cout << "bt 为空";
if(bt.any())
cout << "bt 不为空";
cout << bt.test(4) << endl; //返回第四位的值
cout << bt.count() << endl; //返回1的数量
bitset<12> bt1(1234); // 把1234转为二进制放入bitset
bitset<1212> bt2("1101000110"); //直接赋值
bitset<12> btt;
int n = 15;
btt = n; // 把n转为二进制放入bitset
cout << btt.to_ulong() << endl; // 转为十进制输出
// bitset 运算符只有 == 没有 > <
// bitset 当做一个数字进行 & | ^ << >> 等位运算
return 0;
}