按位操作符用来操作整数基本数据类型中的单个比特,即二进制位。按位操作符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。
按位操作符 & (与):
如果两个输入位都是1,则按位与操作符生成输出一个1,否则输出一个0。
public class TestOperator {
public static void main(String[] args) {
System.out.println("&: "+(1&1));
System.out.println("&: "+(0&1));
}
}
输出:
按位操作符 | (或):
如果两个输入位只要有一个是1,那么按位或输出为1,只有在两个输入位都为0的情况下才会生成0.
public class TestOperator {
public static void main(String[] args) {
System.out.println("|: "+(1|1));
System.out.println("|: "+(0|1));
}
}
输出:
按位操作符 ^ (异或):
如果两个输入位的某一个是1,但不全都是1,那么按位异或生成一个输出位1
public class TestOperator {
public static void main(String[] args) {
System.out.println("^: "+(0^1));
System.out.println("^: "+(1^1));
}
}
输出:
按位操作符 ~ (非):
按位非有称为取反操作符,属于一元操作符
public class TestOperator {输出:
public static void main(String[] args) {
System.out.println("~0: "+(~0));
}
}
注意:
除 非 (~)以外其他任何 按位操作符都可以和 = 号联合使用。