一,按位与&
public class Test {
public static void main(String[] args) {
/**
* 第一种情况:两侧都为int
* 8的二进制为1000
* 5的二进制为0101
* 1为真,0为假。只有1&1时结果才为1
* 8&5二进制按位与 0000 转为十进制结果为0
*/
System.out.println(8&5); // 0
/**
* 第二种情况:两侧都为boolean表达式
* 特点,两侧的表达式都要进行计算
*/
int i=1;
System.out.println((++i==1)&(i++==2)); //false
System.out.println(i); //3
}
}
二、按位或|
public class Test {
public static void main(String[] args) {
/**
* 第一种情况:两侧都为int
* 8的二进制为1000
* 5的二进制为0101
* 按位与 | 一真必真
* 8|5二进制按位或 1101 转为十进制结果为13
*/
System.out.println(8|5); // 13
/**
* 第二种情况:两侧都为boolean表达式
* 特点,两侧的表达式都要进行计算
*/
int i=1;
System.out.println((++i==1)|(i++==2)); //true
System.out.println(i); //3
}
}