C语言:位运算符

异或        ^     两个二进制位相同结果为0;不相同结果为1
              1^1=0    1^0=1   0^1=1  0^0=1

按位或    |      两个二进制位至少有一个1,结果为1;否则为0(两个二制位都是0结果为0)

               1|1=1  1|0=1  0|1=1  0|0=0

按位与  &       两个二进制位都是1结果为1;否则为0

               1&1=1   1&0=0  0&1=0  0&0=0

按位反  ~      0变1   1变0

            ~1=0   ~0=1

 左移   <<    丢弃最高位,0补最低位(右边补0)
5<<2(5向左移2位)  

分析:0000 0101变为       0001 0100

                 5                              20=5*4=5*2^2

5<<2结果为20

右移 >>丢弃最低位 ,0补最高位(左边补0)

5>>2 (5向右移2位)

分析:0000 0101 变为  0000 0001

                 5                         1

所以5>>2结果为1

 

 

 

 

                  

    

posted @ 2021-05-31 19:58  myrj  阅读(142)  评论(0编辑  收藏  举报