# 按位和位移操作符

Java 编程语言还提供对整型类型执行逐位和位移操作的操作符。本节中讨论的运算符较少使用。所以他们的报道很简短;意图是让您意识到这些运算符存在。

一元位补码运算符「~」反转位模式; 它可以应用于任何积分类型,使得「0」为「1」,每「1」为「0」。例如,byte 包含 8 位;将该运算符应用于位模式为「00000000」的值将其模式更改为「11111111」。

  • << 带符号的左移位运算符,将位模式向左移位
  • >> 带符号的右移位运算符,将位模式向右移位
  • >>> 无符号右移操作符,将零移到最左边的位置,而最左边的位置 >> 取决于符号扩展。

位图由左手操作数给出,位数由右手操作数移位

按位运算 & 符执行按位 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);
    }
}
1
2
3
4
5
6
7
8