一、位逻辑运算符
& //与
| //或
~ //取反
^ //异或(可以理解为是否相等)
1.1、位逻辑运算结果
A | B | A&B | A|B | A^B | ~A |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 0 | 0 |
1.2、位逻辑运算的逻辑结果
A | B | A&B | A|B | A^B |
---|---|---|---|---|
true | true | true | true | false |
true | false | false | true | true |
false | true | false | true | true |
false | false | false | false | false |
1.3、实际中的运算
- 与运算:十进制12和8进行与运算。
- 或运算:十进制4和8进行或运算。
- 异或运算:十进制31和22进行异或运算。
- 取反运算:十进制123进行取反运算。
二、位移运算符
<< //左移位
>> //右移位
>>> //无符号右移位
注意:移位运算中,当左侧操作数是int类型时,右侧操作数以32位取模。当左侧操作数是long类型时,右侧操作符以64位取模。关于取模,参考博客。
2.1、左移
2.2、右移
-
正数右移
-
负数右移
-
无符号右移