C语言:位运算符总结
位运算符:
1.指对操作数以二进制位( bit)为单位进行的数据处理
2.每一个二进制位只存放0或1
3.
取反:~
按位反 ~ 0变1 1变0
~1=0 ~0=1
4.
异或: ^ 相同为0,不相同为1
1^1=0 1^0=1 0^1=1 0^0=1
5.
按位或 | 两个二进制位至少有一个1,结果为1;否则为0(两个二制位都是0结果为0)
1|1=1 1|0=1 0|1=1 0|0=0
6.
按位与 & 两个二进制位都是1结果为1;否则为0
1&1=1 1&0=0 0&1=0 0&0=0
7.
左移 << 丢弃最高位,0补最低位(右边补0)
5<<2(5向左移2位)
分析:0000 0101变为 0001 0100
5 20=5*4=5*2^2
5<<2结果为20
8.右移 >>丢弃最低位 ,0补最高位(左边补0)
5>>2 (5向右移2位)
分析:0000 0101 变为 0000 0001
5 1
所以5>>2结果为1