bitset用法

#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流
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值