Java中的位运算主要包括以下几种:
- 按位与(&):对应位都为1时,结果为1,否则为0。
- 按位或(|):对应位有一个为1时,结果为1,否则为0。
- 按位异或(^):对应位不同则结果为1,相同则结果为0。
- 按位取反(~):对每一位进行取反操作,即0变为1,1变为0。
- 左移(<<):将二进制数向左移动指定的位数,右边用0填充。
- 右移(>>):将二进制数向右移动指定的位数,左边用符号位填充。
-
public class BitOperation { public static void main(String[] args) { int a = 5; // 二进制表示:0101 int b = 3; // 二进制表示:0011 // 按位与 int andResult = a & b; // 结果为1,二进制表示:0001 System.out.println("按位与结果:" + andResult); // 按位或 int orResult = a | b; // 结果为7,二进制表示:0111 System.out.println("按位或结果:" + orResult); // 按位异或 int xorResult = a ^ b; // 结果为6,二进制表示:0110 System.out.println("按位异或结果:" + xorResult); // 按位取反 int notResult = ~a; // 结果为-6,二进制表示:1010(补码表示) System.out.println("按位取反结果:" + notResult); // 左移 int leftShiftResult = a << 2; // 结果为20,二进制表示:10100 System.out.println("左移结果:" + leftShiftResult); // 右移 int rightShiftResult = a >> 2; // 结果为1,二进制表示:0001 System.out.println("右移结果:" + rightShiftResult); } }