bitset常用方法总结

1,介绍

bitset是一个可以位数开很大的二进制类似数组一样的工具,可以进行一系列位运算等二进制运算,且操作性更强,可以用于标记数组,状态压缩等等

2.定义方法

	//无初始值,全部为0
	bitset<N>a1;//常数定义,注意,N必须是常数,不可以是变量,这里N已经用const修饰了,这个开了N位的二进制a,最低位0,最高位N-1,可以通过下标直接访问,如a1[0]

	//有初始值
	bitset<N>a2(666);//初始值为666的二进制,高位不够补零
	bitset<N>a3(string("1010010"));//初始值为字符串,高位不够补零

	//字符串另一种写法    字符串是越右边的给二进制越低位,跟字符串自己的下标相反
	string x = "1001010011101";
	bitset<N>a4(x);
	bitset<N>a5(x, 2, 3);//从x的下标2开始,copy3位

	cout << a1 << '\n' << a2 << '\n' << a3 << '\n' << a4 << '\n' << a5;

	//位运算操作
	a3 ^= a2;
	cout << endl << endl << a3;

3,常用函数

bitset<N>a;
	int k=6;
	
	//统计操作
	a.count();//统计多少位是1
	a.any();//有1位是1返回1
	a.none();//全0返回1
	a.size();//a的位数,即N
	
	
	//赋值操作
	a.set();//全部置为1
	a.set(k);//第k位置为1,即a[k]=1
	
	a.reset();//全部置为0
	a.reset(k);//k位置为0,a[k]=0

	a.flip();//全部按位取反
	a.flip(k);//k位取反,即a[k]^=1
	
	//转换函数
	string b=a.to_string();//转为字符串
	ull a1=a.to_ullong();//转为ull
	unsigned ll a2=a.to_ulong();//转为ul

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值