按位和移位运算符
Java 编程语言还提供了对整数类型执行按位和移位操作的运算符。本节中讨论的运算符不太常用。因此,它们的覆盖范围很短;Object 只是让您知道这些运算符的存在。
一元按位补码运算符“ ~
”反转位 Pattern;它可以应用于任何整数类型,每个“ 0”为“ 1”,每个“ 1”为“ 0”。例如,byte
包含 8 位;如果将此运算符应用于位 Pattern 为“ 00000000”的值,则会将其 Pattern 更改为“ 11111111”。
有符号的左移位运算符“ <<
”将位 Pattern 向左移位,而有符号的右移位运算符“ >>
”将位 Pattern 向右移位。位 Pattern 由左操作数给出,移位位置的数量由右操作数给出。无符号右移运算符“ >>>
”将零移位到最左位置,而">>"
之后的最左位置取决于符号 extensions。
按位&
运算符执行按位 AND 运算。
按位^
运算符执行按位异或运算。
按位|
运算符执行按位或运算。
下面的程序BitDemo使用按位 AND 运算符将数字“ 2”打印到标准输出。
class BitDemo {
public static void main(String[] args) {
int bitmask = 0x000F;
int val = 0x2222;
// prints "2"
System.out.println(val & bitmask);
}
}