逻辑运算符
运算符 | 含义 | 用法 |
---|---|---|
&&、& | 逻辑与 | op1 && op2 |
|| | 逻辑或 | op1 || op2 |
! | 逻辑非 | !op |
表达式1 | 表达式2 | 表达式1&&表达式2 | 表达式1||表达式2 | !表达式1 |
---|---|---|---|---|
true | true | true | true | false |
true | false | false | true | false |
false | false | false | false | true |
false | true | false | true | true |
注意:逻辑运算符"&&"和"&"都表示"逻辑与",使用逻辑运算符"&"会判断两个表达式;而"&&"是针对boolean类型的类进行判断的,如果第一个表达式为false时则不会去判断第二个表达式。
位运算符
位运算符除按位与和按位或运算符外,其他只能用于处理整数的操作数
1、“按位与”运算
"按位与"运算的运算符位"&",为双目运算符。
运算法则:
两个操作数相同为1,不同为0。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。
2、“按位或”运算
“按位或”运算的运算符为“|”,为双目运算符。
运算法则:
两个操作数对应位都为0,则结果位0,否则结果位1。
3、“按位取反”运算
“按位取反”运算的运算符位“~”,为单目运算符。
运算法则:
操作数中1修改为0,0修改为1.
4、“按位异或”运算
“按位异或”运算的运算符为“^”,为双目运算符。
运算法则:
两个操作数相同为0,不同为1
5、位移操作
<<:左移(将左边的操作数在内存中的二进制数据左移右边操作数指定的位数,在低位补0)
>>:右移(将左边的操作数在内存中的二进制数据右移右边操作数指定的位数,若最高位为0,则在高位补0;若最高位为 1,则在高位补1)
>>>:无符号右移(不论最高位是0还是1,都在高位补0)
三元运算符
使用格式为:
条件?值1:值2
当条件为true时,则整个表达式取值1,否则取值2。
运算符优先级
优先级 | 描述 | 运算符 |
---|---|---|
1 | 括号 | () |
2 | 正负号 | +、- |
3 | 一元运算符 | ++、--、! |
4 | 乘除 | *、/、% |
5 | 加减 | +、- |
6 | 位移运算 | >>、<<、>>> |
7 | 比较大小 | <、>、>=、<= |
8 | 比较是否相等 | ==、!= |
9 | 按位与运算 | & |
10 | 按位异或运算 | ^ |
11 | 按位或运算 | | |
12 | 逻辑与运算 | && |
13 | 逻辑或运算 | || |
14 | 三元运算符 | ?: |
15 | 赋值运算 | = |