重点
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 对象的简介
- 有些程序要处理二进制位的有序集,每个位可能包含0(关)值或1(开)值。
位用来保存一组项或条件的yes/no信息(标志)的简洁方法。
使用标准库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