分类:
分隔符、一元运算符、算术运算符、关系运算符、逻辑运算符、位运算符、移位运算符、三目运算符、赋值
优先级顺序(由高到低):
结合顺序是指运算符结合的执行顺序
分类 | 结合顺序 | 运算符 |
分割符 | 从左到右 | [] () ; , . |
一元运算符 | 从右到左 | ! +(正) -(负) ++ -- |
算术运算符 | 从左到右 | * / % + - |
移位运算符 | 从左到右 | << >> >>> |
关系运算符 | 从左到右 | > < = >= <= != |
位运算符 | 从左到右 | &(按位与) | ~ ^ |
逻辑运算符 | 从左到右 | && || ! |
三目运算符 | 从右到左 | ?: (逻辑表达式?value1:value2) |
赋值 | 从右到左 | = *= /= %= += -= <<= >>= >>>= &= *= |= |
移位运算符
移位运算符操作的对象就是二进制的位
<< 左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0)
>> "有符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1. >>> "无符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负,都在高位补0.
位运算符
位运算符操作的对象就是二进制
& 位与 两个操作数中位都为1,结果才为1,否则结果为0
| 位或 两个位只要有一个为1,那么结果就是1,否则就为0
^ 异或 两个操作数的位中,相同则结果为0,不同则结果为1
~ 位非 如果位为0,结果是1,如果位为1,结果是0
逻辑运算符
&& 逻辑与 当两边都为true时,才返回true;否则返回false;如果左边返回false,就直接返回false,不在继续执行右边的代码了。
|| 逻辑或 只要左边的返回true,就返回true,不再执行右边的代码;但如果左边返回false,则返回右边的运算结果
! 逻辑非