头文件:#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位,不够的前面补零