C++primer 3.5标准库bitset类型(5.3 位操作符)

重点

  • bitset是二进制位的有序集,里面的元素是0和1

  • 没有定义的时候,bitset< n >b,b里面的元素默认初始化为0,n 个0

  • 使用标准库bitset类型前要先声明 #include< bitset >

  • 在定义bitset时,要明确bitset含有多少位,需在尖括号内给出长度值。bitset< 32 > bitvec; bitvec对象含有32位,以0(低阶位)开始,31结束;

  • bitset初始化给出的长度值必须是常量表达式,必须是定义为整型字面值常量或是已经用常量值初始化的整型的const对象

  • 不管是unsigned 值还是string值初始化bitset对象,都是从右边向左边开始赋值,即从bitset的低阶位向高阶赋值,而且bitset低阶位下标最小,也就是说下标从右往左是越来越小的,这个不要搞错!!!(记住!!!)

  • 当用unsigned long 值作为bitset 对象的初始值时,该值将转化为二进制的位模式

  • 当用string对象初始化bitset对象时,string对象直接表示为位模

  • 当用string对象初始化时,需要注意:

================================================================================================

一、bitste对象的定义和初始化

1、bitset 对象的简介

  1. 有些程序要处理二进制位的有序集,每个位可能包含0(关)值或1(开)值。
  2. 位用来保存一组项或条件的yes/no信息(标志)的简洁方法。

  3. 使用标准库bitset类型前要先声明 #include< bitset >

2、bitset对象的定义和初始化

  • 类似于vector ,bitset类也是一种类模板,而与vector不同的是bitset类型对象的区别仅在其长度而不在其类型。

  • 在定义bitset时,要明确bitset含有多少位,需在尖括号内给出长度值。bitset< 32 > bitvec; bitvec对象含有32位,以0开始,31结束,0是低阶,31是高阶

  • bitset所谓的高阶位和低阶位
以0xffff为例,在机器内的存储方式为:
00000000000000001111111111111111,从高阶-->低阶。

(我不确定是存储方式是从低到高还是高阶到低阶,如果是低阶到高阶,那么把数字1放到前面来)
  • 给出的长度值必须是常量表达式,必须是定义为整型字面值常量或是已经用常量值初始化的整型的const对象

  • 和vector元素一样,bitset中的位是没有命名的,只能用位置来访问,这里是从0—31。

  • 以0位开始的位串是低阶位&#x

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值