总结:&& 和 || 是用于条件判断,而 & 和 | 是用于位运算。
【& 按位与(And)】
- 计算原理:将数字转成二进制 > 二进制运算(遇0为0) > 再将二进制计算结果转成数字;
- 示例:
(1 & 1) = (0001 And 0001 = 0001) = 1
(1 & 2) = (0001 And 0010 = 0000) = 0
(2 & 2) = (0010 And 0010 = 0010) = 2
(7 & 5) = (0111 And 0101 = 0101) = 5
(7 & 8) = (0111 And 1000 = 0000) = 0
(8 & 4) = (1000 And 0100 = 0000) = 0
(true | false) = (0001 And 0000 = 0000) = false
(true | true) = (0001 And 0001 = 0001) = true
(false | false) = (0000 And 0000 = 0000) = false
【| 按位或(Or)】
- 计算原理:将数字转成二进制 > 二进制运算(遇1为1) > 再将二进制计算结果转成数字;
- 示例:
(1 | 1) = (0001 Or 0001 = 0001) = 1
(1 | 2) = (0001 Or 0010 = 0011) = 3
(2 | 2) = (0010 Or 0010 = 0010) = 2
(7 | 5) = (0111 Or 0101 = 0111) = 7
(7 | 8) = (0111 Or 1000 = 1111) = 15
(8 | 4) = (1000 Or 0100 = 1100) = 12
(true | false) = (0001 Or 0000 = 0001) = true
(true | true) = (0001 Or 0001 = 0001) = true
(false | false) = (0000 Or 0000 = 0000) = false
【&& 逻辑与/条件与】
- 遇 false 时返回 false、或同时为 true 时则返回 true;
- 示例:
(true && false) = false
(true && true) = true
(false && false) = false
【|| 逻辑或/条件或】
- 遇 true 时返回 true、或同时为 false 时则返回 false;
- 示例:
(true || false) = true
(true || true) = true
(false || false) = false