C++ bitset类型

目录

1、简介

2、bitset初始化

3、bitset的操作


1、简介

标准库定义了bitset类(定义在头文件bitset中),使位运算的使用更加的容易,并且能够处理超过最长整形类型大小的位集合。

2、bitset初始化

bitset初始化的方法如下表所示。

bitset<n> b;

b大小为n位。每一位均为0。

注:此构造函数是一个constexpr。

bitset<n> b(u);

b是unsigned long long值u的低n位的拷贝。超出范围的高位被置为0。

注:此构造函数是一个constexpr。

bitset<n> b(s,pos,m,zero,one)b是string s从位置pos开始m个字符的拷贝。s只能包含字符zero和one,否则抛出invaild_argument异常。pos默认为0,m默认为string::npos,zero默认为‘0’,one默认为‘1’。
bitset<n> b(cp,pos,m,zero,one)与上个构造函数相同,但从cp指向的字符数组中拷贝字符。如果提供了m,则cp必须指向一个C风格字符串,且从cp开始必须至少有m个zero或one字符。

注:当使用一个整形值来初始化bitset时,此值被转换为unsigned long long类型并当做位模式来处理。

3、bitset的操作

bitset的操作如下表所示。

b.any()b中是否存在置位的位
b.all()b中是否所有位都置位
b.none()b中不存在置位
b.count()b中置位的位数
b.size()b的大小,一个constexpr函数
b.test(pos)若pos位置位,返回true,否则返回false。
b.set(pos,v)将pos位置位bool值v(v默认为true)。
b.set()将b所有位置位。
b.reset(pos)将pos位复位
b.reset()将b所有位复位。
b.flip(pos)改变pos位的位的状态
b.flip()改变b每一位的状态
b[pos]b的下标操作
b.to_ulong()返回unsigned long值,其位模式与b相同。如果b的值不能放入给定的类型,则抛出一个overflow_error异常
b.to_ullong()返回unsigned  long long值,其位模式与b相同。如果b的值不能放入给定的类型,则抛出一个overflow_error异常
b.to_string(zero,one)返回一个string,表示b中的位模式(zero和one的默认值分别为0和1,用来表示b中的0和1)。
os << b将b中二进制位打印为字符1或0,打印到流os
is  >> b从is读取字符存入b,当下一个字符不是1或0时,或是已经读入b.size()个位时,读取过程停止

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值