3.4 位运算符

Java定义了位运算符,用于整型(int)、长整型(long)、短整型(short)、字符型(char)和字节型(byte)等类型的运算。位运算是直接对二进制进行运算,运算符如表3-4所示。

表3-4 位运算符

在表3-4中展示了Java编程中常用的位运算符。它们之间的特征如下所示:


● &:二进制位进行&运算,只有1&1时结果是1,否则是0。

● |:二进制位进行|运算,只有0|0时结果是0,否则是1。

● ^:相同二进制位进行^运算,结果是0,例如1^1=0、0^0=0;不相同二进制位进行^运算,结果是1,例如1^0=1、0^1=1。

● ~:正数取反,各二进制码按补码各位取反;负数取反,各二进制码按补码各位取反。

● <<:左移一位,被移位的二进制最高位丢弃,左移后,最右侧空缺位补0。

● >>:被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1。

● >>>:被移位二进制最高位无论是0或者是1,空缺位都用0补。


位运算符的使用如示例3-4所示。

【示例3-4】位运算符

程序编译后,运行结果如下:

示例3-4展示了位运算符的使用方式。在日常的操作中,除非特殊需要,此类操作符使用的概率很小。一般用在对硬件设备进行操作的程序中。