【数据结构】bitset
一、概述:C++语言的一个类库,bitset除了可以访问指定下标的bit位以外,还可以把它们作为一个整数来进行某些统计。 二、格式: 1.bitset<N>varm, n为01串的长度,“varm”为变量名,位置为(0~n-1) 2.头文件:#include<bitset> 3.操作表
1.赋值操作测试: b[i]=1 等价于 b.set(5); int main() { bitset<8>b; b[5]=1; cout<<b<<endl; }输出:00100000 注意赋值是下标为i的,就算自然二进制数顺序
2.将bit转化为十进制数 int main() { unsigned long value=0; bitset<8> bs32(value); bs32[4]=1;//00010000 value=bs32.to_ulong(); cout<<value<<endl; } 输出:00010000 3.将bitset转化为字符串 int main() { bitset<4>b(1000); b[2]=1; string str=b.to_string(); cout<<str<<endl; } 输出1100; 三、其他操作 1.bool any()//是否存在置为1的二进制位?和none()相反 bitset<4>b(1100); cout<<b.any()<<endl;输出:1 同理bool none()//全零为 1
2.int count()//一的个数 bitset<4>b(1100); cout<<b.count()<<endl;输出:2
3.int size() // bitset<4>b(1100); cout<<b.size()<<endl; 输出:4
4. flip()//全部取反 bitset<4>b(1100); b.flip(); cout<<b<<endl; 输出:0011
5.flip(pos)//pos bitset<4>b(1100); b.flip(0); cout<<b<<endl;输出:1101
6.取某位的数; bitset<4>b(1100); int t=b[1]; cout<<t<<endl;输出:1
7.set()//全置一 ,set(pos)//pos位置一 bitset<4>b(1100); b.set(); cout<<b<<endl; 输出:1111 bitset<4>b(1100); b.reset(); cout<<b<<endl;输出0000 9. test(size_t pos) 在pos处的二进制位是否为1? bitset<4>b(1100); cout<< b.test(1)<<endl; 输出0; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |