#include<iostream>
#include<bitset>
#include<string>
using namespace std;
int main()
{
bitset<32>a;//声明一个32位的二进制数,默认值为0
bitset<16>b(0xffff);/*声明一个16位的二进制数,初始化为0xffff(转换成二进制),结果为1111
1111 1111 1111*/
bitset<32>c(0xffff);//后面16位初始化为1111111111111111,前面16位默认为0
string str("1111100000011001101");
bitset<32>f(str, 5, 4);/*从string对象读入bitset是从右往左读取,本例表示从str右边第五个开始连
续读取四个字符,即1100*/
bitset<32>g(str, str.size() - 4);//从str的str.size()-4位开始读取,即读取str最后四位字符
a[5] = 1;//bitset可以使用下标,将a的右边第五位改成1
//bitset也可使用键盘进行输入
bitset<5>h;
cin >> h;
b.any(); //b中是否存在置为1的二进制位?
b.none();// b中不存在置为1的二进制位吗?
b.count();// b中置为1的二进制位的个数
b.size();// b中二进制位数的个数
b[pos];// 访问b中在pos处二进制位
b.test(pos);// b中在pos处的二进制位置为1么?
b.set();// 把b中所有二进制位都置为1
b.set(pos);// 把b中在pos处的二进制位置为1
b.reset();// 把b中所有二进制位都置为0
b.reset(pos);// 把b中在pos处的二进制位置置为0
b.flip();// 把b中所有二进制位逐位取反
b.flip(pos);// 把b中在pos处的二进制位取反
b.to_ulong();// 把b中同样的二进制位返回一个unsigned
os << b;// 把b中的位集输出到os流
}
bitset用法
最新推荐文章于 2024-03-25 01:03:03 发布