Java提供了7个按位运算符,它们分别作用于各个位。
运算符 | 描述 | 例 |
&二进制AND | 如果两个操作数中都存在,它将复制一个结果。 | (A&B)= 12表示0000 1100 |
| 二进制或 | 如果存在于任何一个操作数中,它将复制一点。 | (A | B)= 61表示0011 1101 |
^二进制异或 | 如果在一个操作数中设置了该位,但不是在两个操作数中都设置了,则它将复制该位。 | (A ^ B)= 49表示0011 0001 |
〜二进制补码 | 它是一元的,具有“翻转”位的作用。 | (〜A)= -61表示2的补码形式的1100 0011(由于带符号的二进制数)。 |
<<二进制左移 | 左操作数的值向左移动右操作数指定的位数。 | A << 2 = 240表示1111 0000 |
>>二进制右移 | 左操作数的值向右移动右操作数指定的位数。 | A >> 2 = 15表示1111 |
>>>右移零填充 | 左操作数的值向右移动右操作数所指定的位数,并且移位后的值用零填充。 | A >>> 2 = 15表示0000 1111 |