1.逻辑运算
运算符 | 含义 | 用法 | 结合方向 |
---|---|---|---|
&& | 与:运算符两端全为真,整体为真 | 操作数1 && 操作数2 | 从左向右 |
|| | 或:运算符任意一端为真,整体为真 | 操作数1 || 操作数2 | 从左向右 |
! | 非:操作数真,则整体为假;反之亦然 | !操作数 | 从右向左 |
2.位运算符
运算符 | 含义 |
---|---|
& | 按位与:两个整型数的二进制形式,对应位都为1,结果位才是1;否则为0(全1则1) |
| | 按位或:两个整型数的二进制形式,对应位都为0,结果位才是0;否则为1(全0则0) |
~ | 按位取反:一个整型数的二进制形式中的 1 改为 0 ,0 改为 1 (1为0,0为1) |
^ | 按位异或:两个整型数的二进制形式,对应位相同,结果位为0;否则为1(同0异1) |
具体示例如下图(整型int 在内存中是4byte,32bit位,以下为表示方便只展示了最后8位)
按位与、按位或、按位异或示例
取反示例
*注意:
&&和&的区别(|| 和 | 的区别类似|):
&&:表达式1 && 表达式2,若表达式1就为假,运算结束,不会继续对表达式2进行判断。
&:表达式1 & 表达式2,无论表达式1真假,始终会执行运算符两边的表达式。
*补充:对于那些在逻辑表达式中从左端的表达式就可以推断出整个表达式的值,而不再进行下一表达式的执行的运算符称为“短路”运算符;而那些始终执行运算符两边的表达式的运算符成为“非短路”运算符。这里的 && 和 || 即短路运算符, & 和 | 即非短路运算符。