深入理解C++移位运算符

2020-01-06 15:17:12刘景俊

(c) 反转第27位的值。

   result^=(1<<27) //任意的位值与1作按位异或操作其值为1,而与0作按位异与操作其值不变

二、C++中的bitset容器

1.头文件:

  #include <bitset>

2.声明一个容器:

 (a)声明一个指定位数的空容器(所有位设为0): bitset<int> bits;

 (b)声明一个指定位数并将指定的几个位初始化为相应值的容器: bitset<n> bits(int);

     bitdet<int> bits(string&)

总结:bitset模板类中类型参数传递容器的位数,而构造函数参数通过一个int或一个string&值来从右至左初始化容器中的相应值。

3.bitset的基本用法:

 

操作

功能

用法

test(pos)

pos位是否为1?

a.test(4)

any()

任意位是否为1?

a.any()

none()

是否没有位为1?

a.none()

count()

值是1的位的小数

count()

size()

位元素的个数

size()

[pos]

访问pos位

a[4]

flip()

翻转所有位

a.flip()

flip(pos)

翻转pos位

a.flip(4)

set()

将所有位置1

a.set()

set(pos)

将pos位置1

a.set(4)

reset()

将所有位置0

a.reset()

reset(pos)

将pos位置0

a.reset(4)