Java 中的位运算符用于对整数类型的二进制位进行操作。以下是 Java 中支持的位运算符及其中文称呼:
-
按位与(AND) -
&
- 中文称呼:按位与操作符
- 作用:对两个数的每个位执行逻辑与操作。
-
按位或(OR) -
|
- 中文称呼:按位或操作符
- 作用:对两个数的每个位执行逻辑或操作。
-
按位异或(XOR) -
^
- 中文称呼:按位异或操作符
- 作用:对两个数的每个位执行逻辑异或操作,相同为0,不同为1。
-
按位非(NOT) -
~
- 中文称呼:按位取反操作符
- 作用:对操作数的每个位取反,即将1变为0,将0变为1。
-
左移(Left Shift) -
<<
- 中文称呼:左移位操作符
- 作用:将一个数的所有位向左移动指定的位数,右边用0填充。
-
右移(Right Shift) -
>>
- 中文称呼:算术右移位操作符
- 作用:将一个数的所有位向右移动指定的位数,左边的位保持不变,用于有符号整数。
-
无符号右移(Unsigned Right Shift) -
>>>
- 中文称呼:无符号右移位操作符
- 作用:将一个数的所有位向右移动指定的位数,左边用0填充,用于无符号整数。
位运算符通常用于底层编程,如硬件操作、性能优化等场景。它们对整数类型的数据进行操作,不适用于浮点数。
下面是一些位运算符的使用示例:
int a = 60; // 60 的二进制是 0011 1100
int b = 13; // 13 的二进制是 0000 1101
int andResult = a & b; // 按位与,结果为 0000 1100,即 12
int orResult = a | b; // 按位或,结果为 0011 1101,即 61
int xorResult = a ^ b; // 按位异或,结果为 0011 0001,即 49
int notA = ~a; // 按位非,结果为 1100 0011,即 -61
int leftShiftResult = a << 2; // 左移两位,结果为 1111 0000,即 240
int signedRightShiftResult = a >> 2; // 算术右移两位,结果为 0000 1111,即 15
int unsignedRightShiftResult = a >>> 2; // 无符号右移两位,结果为 0001 1110,即 61