note-bitset类

1、头文件

#include<bitset>
using std::bitset;//若有using namespace std,可免。

2、定义和初始化

1.bitset<n> b;            //必须要明确位数,b=0...0
2.bitset<n> b(ui);        //ui是一个unsigned类型的整型变量;
    bitset<8> b(5);       //b=00000101
    bitset<8> b=5;        //b=00000101
3.bitset<n> b(str);       //str是一个string类型的对象,其元素必须为'0'或'1'。
  bitset<n> b(str,pos);   //str中从pos开始之后的元素。 !!注意方向
  bitset<n> b<str,pos,n> //str中从pos开始之后的n个元素。!!注意方向
    string s="011101";
    bitset<8> b(s);         //b=00011101
    bitset<8> b(s,2);       //b=00001101
    bitset<8> b(s,2,3);     //b=00000110
    bitset<8> b("011101");  //错误:不存在从 "const char [7]" 转换到"std::bitset<8Ui64>" 的适当构造函数

3、bitset对象上的操作

  1. bitset的操作

        b.any()         b中是否存在置为1的二进制位?
    
        b.none()        b中不存在置为1的二进制位吗?
    
        b.count()       b中置为1的二进制位的个数
    
        b.size()        b中二进制位的个数
    
        b[pos]          访问b中在pos处的二进制位
    
        b.test(pos)     b中在pos处的二进制位是否为1?
    
        b.set()         把b中所有二进制位都置为1
    
        b.set(pos)      把b中在pos处的二进制位置为1
    
        b.reset()       把b中所有二进制位都置为0
    
        b.reset(pos)    把b中在pos处的二进制位置为0
    
        b.flip()        把b中所有二进制位逐位取反
    
        b.flip(pos)     把b中在pos处的二进制位取反
    
        b.to_ulong()    用b中同样的二进制位返回一个unsigned long值
    
        os << b         把b中的位集输出到os流
    
  2. b.count()返回的是标准库中名为size_t的类型,size_t定义在cstddef头文件中,是一个与机器相关的unsigned类型。

     bitset<32> b;
     size_t sz = b.size();   //return 32;
    
  3. 获取bitset对象的值

     bitset<16> b(5);
     int i1=b.to_ulong();         //i1=5
     int i2=b.to_ullong();        //i2=5
     string str=b.to_string();    //str="0101"
    
  4. 5.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值