类型 | 运算符 | 表达式 | 说明 |
算术运算符 | ++ | var = ++var1或var = var1++ |
|
-- | var = --var1或var = var1-- |
| |
+ | var = +var1或var = var1+var2 |
| |
- | var = -var1或var = var1-var2 |
| |
* | var = var1*var2 |
| |
/ | var = var1/ var2 |
| |
% | var = var1% var2 |
| |
赋值运算符 | = | var = var1+ var2 |
|
*= | var *= var1 |
| |
/= | var /= var1 |
| |
%= | var %= var1 |
| |
+= | var += var1 |
| |
-= | var -= var1 |
| |
布尔逻辑运算符 | == | var = var1==var2 | 如果var1等于var2,var的值就是true |
!=(不等于) | var = var1!=var2 | 如果var1不等于var2,var的值就是true | |
<
| var = var1<var2 | 如果var1小于var2,var的值就是true | |
>
| var = var1>var2 | 如果var1大于var2,var的值就是true | |
<= | var = var1<=var2 | 如果var1不大于var2,var的值就是true | |
>= | var = var1>=var2 | 如果var1不小于var2,var的值就是true | |
!(逻辑非) | var = !var1 | 如果var1是true,var的值就是false | |
&(逻辑与) | var = var1&var2 | 如果var1和var2都是true,var的值就是true | |
|(逻辑或) | var = var1|var2 | 如果var1或var2或var1和var2都是true,var的值就是true | |
^(逻辑异或) | var = var1^var2 | 如果var1或var2有且只有一个是true,var的值就是true | |
&&(逻辑与) | var =var1 &&var2 | 如果var1和var2都是true,var的值就是true | |
||(逻辑或) | var = var1||var2 | 如果var1或var2或var1和var2都是true,var的值就是true | |
&= | var &= var1 | var的值就是var&var1的值 | |
|= | var |= var1 | var的值就是var|var1的值 | |
^= | var ^= var1 | var的值就是var^var1的值 | |
位运算符 | >>
| var = var1>>var2 | 把var1的二进制值向右移动var2位,就得到var的值。每向右移动一位var的值除以2,并丢弃余数 |
<<
| var = var1<<var2 | 把var1的二进制值向左移动var2位,就得到var的值.。每向左移动一位var的值乘以2,移动两位乘以4 | |
<<= | var <<= var1 | 把var的二进制值向左移动var1位就得到var的值 | |
>>= | var >>= var1 | 把var的二进制值向右移动var1位就得到var的值 | |
& | 第一个操作数中的每个位都与第二操作数中相同位置上的位进行比较 | ||
| | 第一个操作数中的每个位都与第二操作数中相同位置上的位进行比较 | ||
^ | 如果操作数中相同位置上的位有且仅有一个是1其结果位就是1,否则为0 | ||
~ | 它将操作数中的位取反,操作数中位为1的其结果为0,位为0的其结果为1 | ||
` | ? : | var ? var1 :var2 | 如果var为true则值为var1,否则为var2 |
&、|与&&、||对比:
&、|与&&、||的运算结果完全相同,但是它们得到结果的方式不同
&、|它们总是要计算它们左右的2个操作数,而&&、||却并不总需要计算左右2个操作数
如果&&运算符的第一个操作数为false,就不需要考虑第二个操作数的值,因为无论第二个操作数的值是什么,其结果都是false
如果||运算符的第一个操作数为true,就不需要考虑第二个操作数的值,因为无论第二个操作数的值是什么,其结果都是true
所以&&、||比&、|性能较好,作为一个规则,尽可能使用&&、||运算符
位运算符解析:
|位运算符:操作数中相同位置上的位有一个是1,其结果位就是1
^位运算符:操作数中相同位置上的位有且仅有一个是1,其结果位就是1
运算符的优先级:
优先级
| 运算符
|
优先级由高到低
| ++、---、()、+(一元)、-(一元)、!、~
|
*、/、%
| |
+、-
| |
<<、>>
| |
<、>、<=、>=
| |
==、!=
| |
&
| |
^
| |
|
| |
&&
| |
||
| |
=、*=、/=、<<=、>>=、&=、^=、|=
| |
++、--
|