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

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

2.    & 按位取与

只有两个操作数都是1结果才是1,否则为0

10 = 00000000 00000000 00000000   00001010

12 = 00000000 00000000 00000000   00001100

&

8 = 00000000 00000000 00000000   00001000

3.    | 按位取或

两个操作数任意一位为1结果就是1

10 = 00000000 00000000 00000000   00001010

12 = 00000000 00000000 00000000   00001100

|

14 = 00000000 00000000 00000000   00001110

4.    ^ 按位异或

两个操作数不同为1,相同为0

10 = 00000000 00000000 00000000   00001010

12 = 00000000 00000000 00000000   00001100

^

14 = 00000000 00000000 00000000   00000110

5.    用法:掩码

掩码是通过&(位与)将某些位设置为开(1),将某些位设置为关(0)。将掩码0看做不透明,将1看着透明。

EG:

如只显示第二、三位

107 = 0110 1011

6            = 0000 0110

&

2   = 0000 0010

       

6.    用法:打开位

打开位是通过 |(位或)打开一个值的特定位,同时保持其他位的不变。这是因为和0位或都为0,和1位或都为1。