
3.3.1 位逻辑运算

位逻辑运算是对每个二进制上的数值进行判断。Java语言提供了4个进行位逻辑运算的运算符,即位逻辑运算符,如表3.8所示。
表3.8 位逻辑运算符

1.取反运算
取反运算使用取反运算符(~)对二进制位值进行取相反值操作。用取反运算符构建的表达式被称为取反运算表达式。其语法形式如下:

取反运算表达式需要一个操作数,因此取反运算符是一元运算符(单目运算符)。取反运算就是将二进制数按位取反,即0变1,1变0,如图3.13所示。

图3.13 取反运算
【示例3-21】下面将实现对二进制数00111100的取反运算。代码如下:

运行结果如下:

2.位与运算
位与运算使用位与运算符(&)判断两个二进制数的位上的值是否都为1。用位与运算符构建的表达式被称为位与运算表达式。其语法形式如下:

位与运算表达式需要两个操作数,因此位与运算符是二元运算符(双目运算符)。位与运算的运算规则是两个相应的二进制位都为1,则该位为1,否则为0,如图3.14所示。

图3.14 位与运算
【示例3-22】下面将对二进制数0011和0010进行位与运算。代码如下:

0011和0010进行位与运算的工作方式如图3.15所示。

图3.15 位与运算的工作方式
运行结果如下:

3.位或运算
位或运算使用位或运算符(|)判断两个二进制数的位上的值是否为1。使用位或运算符构建的表达式被称为位或运算表达式。其语法形式如下:

位或运算表达式需要两个操作数,因此位或运算符是二元运算符(双目运算符)。位或运算的运算规则是只要两个相应的二进制位中有一个为1,则该位为1,如图3.16所示。

图3.16 位或运算
【示例3-23】下面将对二进制数0011和0010进行位或运算。代码如下:

0011和0010进行位或运算的工作方式如图3.17所示。

图3.17 位或运算的工作方式
运行结果如下:

4.位异或运算
位异或运算使用位异或运算符(^)判断两个二进制数的位是否相同。使用位异或运算符构建的表达式被称为位异或运算表达式。其语法形式如下:

位异或运算表达式需要两个操作数,因此位异或运算符是二元运算符(双目运算符)。位异或运算的运算规则是两个相应的二进制位相同则为0,否则为1,如图3.18所示。

图3.18 位异或运算
【示例3-24】下面将实现对二进制数0001和0010的位异或运算。代码如下:

0001和0010进行位异或运算的工作方式如图3.19所示。

图3.19 位异或运算的工作方式
运行结果如下:
