Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
Java 编程语言还提供了对整型类型执行位运算和移位操作的运算符。本节讨论的运算符不太常用。因此,他们的报道很简短;目的只是让你意识到这些运算符的存在。
一元按位反码运算符 "~" 将位模式反转;它可以应用于任何整型,使得每个 "0" 为 "1",每个 "1" 为 "0"。例如,一个 byte 包含 8 位;将该运算符应用于位模式为 "00000000" 的值将其模式更改为 "11111111"。
带符号的左移运算符 "<<" 将位模式向左移位,并且带符号的右移运算符 ">>" 将位模式向右移位。位模式由左侧操作数给出,操作数移动位置的数量由右侧操作数给出。无符号右移运算符 ">>>" 将零移动到最左边的位置,而 ">>" 之后的最左边位置取决于符号扩展。
按位 & 运算符执行按位与运算。
按位 ^ 运算符执行按位异或运算。
按位 | 运算符执行按位或运算。
以下程序 BitDemo 使用按位与运算符将数字 "2" 输出到标准输出。
class BitDemo {
public static void main(String[] args) {
int bitmask = 0x000F;
int val = 0x2222;
// prints "2"
System.out.println(val & bitmask);
}
}