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

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

EG:

如只打开第二、三位

107 = 0110 1011

6   = 0000 0110

|

111 = 0110 1111

7.    用法:关闭位

关闭某些位

EG:

如关闭第二、三位

107 = 0110 1011

6    = 0000 0110

& ~

105 = 0110 1001

8.    用法:转置位

如果一位为1则转置为0,如果一位为1则转置为0

EG:

如转置第二、三位

107 = 0110 1011

6    = 0000 0110

^

105 = 0110 1101

       

二.    移位运算符

  1. << 左移

左移运算符是把操作数的值的每一位向左移动,移动的位数有右边的操作数决定,右侧空出的位数用0填充

EG:

如转置第二、三位

107 = 0110 1011 <<2

<<

172 = 1010 1100

      

       在计算机中由于是32位的

107 = 0000 0000   0000 0000   0000 0000   0110 1011 <<2

<<

428 = 0000 0000   0000 0000   0000 0001   1010 1100