C++标准库bitset对象的初始化及操作

来源:互联网 发布:paxos和raft算法 编辑:程序博客网 时间:2024/05/17 05:49

标准库提供的 bitset 类简化了位集的处理。 bitset对象的定义和初始化如下图:


多种bitset操作如下两图:



最后简单编写代码测试bitset对象:

#include <bitset>#include <iostream>using namespace std;int main(){bitset<16> bitvec; //初始化16位,全0bool is_set = bitvec.any(); //存在置为1的二进制位吗?否,返回falsebool is_not_set = bitvec.none(); //不存在1的二进制位吗?是,返回truesize_t bits_set = bitvec.count();//置为1的二进制位的个数,0size_t sz = bitvec.size(); //二进制位的个数,16cout<<"bitvec:"<<endl<<bitvec<<endl;//下标操作符for (int index=0;index!=bitvec.size();index+=2){bitvec[index] = 1;}cout<<"下标操作符,置偶数位为1:"<<endl<<bitvec<<endl;//reset操作bitvec.reset();cout<<"reset操作,所有二进制位都置为0:"<<endl<<bitvec<<endl;//set操作for (int index=0;index!=bitvec.size();index+=2){bitvec.set(index);}cout<<"set操作,置偶数位为1:"<<endl<<bitvec<<endl;//set操作bitvec.set();cout<<"set操作,所有二进制位都置为1:"<<endl<<bitvec<<endl;//flip操作bitvec.flip();cout<<"flip操作,所有二进制位逐位取反:"<<endl<<bitvec<<endl;//flip操作for (int index=0;index!=bitvec.size();index+=2){bitvec.flip(index);}cout<<"flip操作,将偶数位取反:"<<endl<<bitvec<<endl;//获取bitset对象的值unsigned long ulong = bitvec.to_ulong();cout<<"bitvec返回unsigend long值为:"<<ulong<<endl;return 0;}


0 0