c++ bitset

头文件:#include< bitset >
bitset< 5 > a; // 定义一个长度为5的a ,即二进制表示: “00000”
a.reset() ==》全部置零
a._Find_first() // 查找从右往左数(也就是从低位向高位数,之前的写大数,以及书写十进制时,经常把这个搞混)第一个出现1 的位置
下面用代码讲讲它与数组不同的地方:

#include <bits/stdc++.h>
using namespace std;
int main()
{
	string s="1011000";
	bitset<7> B1(s);
	bitset<8> B2(s);
	cout<<"字符串为:"<<s<<endl;
	cout<<"bitset B1为:"<<B1<<endl;
	cout<<"bitset B2为:"<<B2<<endl;
	
	B1.set(0);//将下标为0的位置置为1
	cout<<B1<<endl;
	
	
	return 0;
}
输出结果为:(下面为了好对比,对其了结果)

字符串为:   1011000
bitset B1为: 1011000
bitset B2为:01011000
           1011001

可以发现,
1)将字符串s初始化B1时,bitset中的下标为0的位置是最右边(类似于平时写的二进制 10,表示的是十进制2),而数组的是最左边,bitset的从右往左表示从低位向高位
2)B2的大小为8,s为7位,不够的前面补零

链接:https://www.cnblogs.com/magisk/p/8809922.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值