按位与(&),短路与(&&)
- 按位与 & 是双目运算符, 其功能是参与运算的两数各对应的二进位相与
- 运算规则: 同时为1, 结果为1, 否则为0
- 不同之处: 按位与(&)既是位运算符又是逻辑运算符, 按位与(&)的两侧可以是int, 也可以是boolean表达式,当&两侧是int时, 要先把运算符两侧的数转化为二进制数再进行运算, 而短路与(&&)的两侧要求必须是布尔表达式
按位或(|),短路或(||)
- 按位或 | 是双目运算符, 其功能是参与运算的两数各对应的二进位相或
- 运算规则: 有一个为1, 结果为1, 否则为0
- 不同之处: 按位或(|)和短路或(||)成立的条件是只要一侧表达式为真, 结果就为真, 按位或(|)运算时, 无论左侧的表达式的值为真还是为假, 都要判断右侧的表达式的值的真假, 短路或(||)运算时, 只要左侧表达式的值为真, 就不再判断右侧表达式的值了