文档

Java™ 教程-Java Tutorials 中文版
位运算和移位运算符
Trail: Learning the Java Language
Lesson: Language Basics
Section: Operators

位运算和移位运算符

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

Previous page: Equality, Relational, and Conditional Operators
Next page: Summary of Operators