注意:位运算符针对整数的补码进行运算,所以运算结果也是补码
&(与运算)
将数据转化为补码形式,然后将0看作false,将1看作true,按位进行与运算,最后将结果转化为十进制来显示
7 0000 0111
& 11 0000 1011
————————————
3 0000 0011
注:
偶数 & 任意数字 = 偶数
正数 & 任意数字 = 正数
奇数 & 1 = 1
偶数 & 1 = 0
|(或运算)
将数据转化成补码形式,按位进行或运算,最后将结果转化位十进制
7 0000 0111
| 11 0000 1011
————————————
15 0000 1111
注:
奇数 | 任意数字 = 奇数
负数 | 任意数字 = 负数
^ (异或运算)
将数据转化成补码形式,按位进行异或运算,最后将结果转化位十进制。相同位false,不同位true。
7 0000 0111
^ 11 0000 1011
————————————
12 0000 1100
注:
i ^ i = 0
j ^ 0 = j
i ^ j ^ j = i
~ (取反运算)
i = 5
~i = -6
5的源码 :0101
5的补码 :0101
取反运算:1010
反码:1001
源码:1110 —–> -6
<< , >> , >>>
https://www.cnblogs.com/chuijingjing/p/9405598.html