一、按位与运算符 &
"&"是按位操作符,用于对整数的二进制位进行逐位运算。"&"按位与操作符执行两个操作数的按位与运算,只有在相应位置的两个操作数都是1时,结果位才是1,否则为0。(计算机处理的所有数据最终都会被表示为二进制位,所以每当我们看见这种运算符时,要将其转化为二进制数)
int result = 5 & 3; // 0101 & 0011 = 0001,结果为1
// 0 1 0 1 5
// 0 0 1 1 3
//---------
// 0 0 0 1 1
规则:全1为1,否则为0。
二、按位或运算符 |
"|"是按位操作符,用于对整数的二进制位进行逐位运算。按位或操作符执行两个操作数的按位或运算,只要在相应位置的两个操作数中至少有一个是1,结果位就是1,否则为0。
int result2 = 5 | 3; // 0101 | 0011 = 0111,结果为7
// 0 1 0 1 5
// 0 0 1 1 3
//---------
// 0 1 1 1 7
规则:全0为0,否则为1。
三、逻辑与运算符 &&
"&&"是逻辑操作符,用于对逻辑表达式进行求值。"&&"逻辑与操作符执行逻辑与运算,只有在两个操作数都为真(非零)时,结果为真,否则为假(0)。
int a = 5, b = 3;
int result = (a > 0) && (b > 0); // (true) && (true) = true,结果为1
// 0 1 0 1 5
// 0 0 1 1 3
//---------
// 0 0 0 1 1
规则:全1为1,否则为0。
四、逻辑或运算符 ||
"||"用于对逻辑表达式进行求值,结果为逻辑值(0
或 1)。
用于对两个逻辑表达式进行逻辑或运算,只要两个操作数中至少有一个为真(非零),结果为真,否则为假。
int result2 = (a > 0) || (b < 0); // (true) || (false) = true,结果为1
// 0 1 0 1 5
// 0 0 1 1 3
//---------
// 0 1 1 1 7
规则:有1为1,否则为0。