逻辑运算符
-
&
AND(与),只要两边的boolean表达式结果有一个为false
,那么结果就是false
;只有两边都为true
,结果为true
-
|
OR(或),两边只要有一个为true
,结果为true
;只有两边都有false
,结果为false
-
^
XOR(异或),两边相同结果是false
,两边不同结果是true
-
!
非,真或假取反 -
&
和&&
的特点:
&
:无论左边是true还是false,右边都运算
&&
:当左边为false
时,右边不运算 -
|
和||
的特点:
|
:两边都参与运算
||
:当左边为true
,右边不运算
位运算符(效率更高)
-
<<
左移,乘以2的移动的位数次幂 -
>>
右移,除以2的移动的位数次幂
>>
和<<
需要注意
>>
最高位补什么由原有数据的最高位值而定。如果最高位0,右移后,用0补空位。如果最高位1,右移后,用1补空位。<<
无论最高位是什么,右移后,都用0补
-
>>>
无符号右移 -
&
与运算 -
|
或运算 -
^
异或运算 -
~
反码
三元运算符
- 格式
(条件表达式)?表达式1:表达式2;
如果条件是true
,运算后的结果是表达式1;
如果条件为false
,运算后的结果是表达式2; - 示例
获取两个数中大数
int x=3,y=4,z;
z=(x>y)?x :y;//z变量存储的就是两个数的最大数。
网友评论