按位和移位运算符

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);
    }
}