在Java中,位运算符用于对整数类型的值进行位运算。以下是Java中的位运算符:
位与(&):两位都为1时,结果为1,否则为0。
位或(|):两位中有1个为1,结果为1。
位非(~):位的反,0变1,1变0。
位异或(^):两位不同时结果为1。
左移(<<):将操作数的二进制表示向左移指定位数,高位丢弃,低位补0。
右移(>>):将操作数的二进制表示向右移指定位数,高位补原符号位,低位丢弃。
无符号右移(>>>):将操作数的二进制表示向右移指定位数,高位补0,低位丢弃。
示例代码:
public class BitOperatorExample {
public static void main(String[] args) {
int a = 60; // 二进制表示为 0011 1100
int b = 13; // 二进制表示为 0000 1101
// 位与
int andResult = a & b; // 结果为 0000 1100,即 12
// 位或
int orResult = a | b; // 结果为 0011 1101,即 61
// 位非
int notResult = ~a; // 结果为 1100 0011,即 -61(如果int类型)
// 位异或
int xorResult = a ^ b; // 结果为 0011 0001,即 49
// 左移
int shiftLeftResult = a << 2; // 结果为 1111 0000,即 240
// 右移
int shiftRightResult = a >> 2; // 结果为 0001 1110,即 15
// 无符号右移
int shiftRightUnsignedResult = a >>> 2; // 结果为 0001 1110,即 15
System.out.println("AND: " + andResult);
System.out.println("OR: " + orResult);
System.out.println("NOT: " + notResult);
System.out.println("XOR: " + xorResult);
System.out.println("Shift Left: " + shiftLeftResult);
System.out.println("Shift Right: " + shiftRightResult);
System.out.println("Shift Right Unsigned: " + shiftRightUnsignedResult);
}
}