运算 | 符号 | 解释 | 例子 |
与 | & | 两个数字相与:当两个数字对应的二进位均为1时,结果位为1,否则为0。参与运算的数以补码出现。 | 3&5 => 0000 0011 & 0000 0101 = 0000 0001 = 1 |
或 | | | 两个数字相或:当两个数字对应的二进位有一个为1时,结果位为1,否则为0。参与运算的数以补码出现。 | 3|5 => 0000 0011 | 0000 0101 = 0000 0111 = 7 |
异或 | ^ | 两个数字相异或:当两个数字对应的二进位相异时,结果位为1,否则为0。参与运算的数以补码出现。 | 3^5 => 0000 0011 ^ 0000 0101 = 0000 0110 = 6 |
取反 | ~ | 一个数字按位取反,0变1,1变0。 | 3~ => 0000 0011~ = 1111 11 00 = 252 |
左移 | << | 相当于乘法。记公式:a >> b = a * (2^b) | 2 >> 5 = 2 * (2^5) = 2 * 32 = 64 |
右移 | >> | 相当于除法。记公式: a << b = a / (2^b) | 2 << 5 = 2 / (2^5) = 2 / 32 = 0;16 << 3 = 16 / 8 = 2 |
无符号右移 | >>> |