运算符类型
一、算数运算符
一、基本运算符
即 加 减 乘 除 模(+ - * / %)
除:
1. int / int ,结果为 int
2. 除数或被除数有一个为浮点数类型,结果为浮点数类型
3. 如果有强转,注意强转的是除数还是被除数,亦或者是运算结构
4. 除数为0时会报错
取余(模):
1. 数据可有正有负,就按照正常的取余进行计算即可
2. %两边可以用小数,但意义不大
二、增量运算符
即,+=,-=,*=,/=
注:当两类型不同时,它可以自动转换类型
如图所示:
三、自增/自减运算符
即,++,--
1. 单独一句语句时,前置++(--)和后置++(--)一样
2. 如果赋值,前置++(--)等于先自身加(减),然后在赋值;后置++(--)等于先赋值,然后在自身加(减)
3. 当 int a = 10; a = a ++ 时,结果输出为10; 当 int a = 10; a = ++ a 时,结果输出为11
二、关系运算符
即 大于>、小于<、等于==、不等于!=、大于等于>=、小于等于<=,其结果为 true 和 false
注:不可使用 5<a<10 这种方式
三、逻辑运算符
主要有三个 &&(并且)、||(或)、!(非)
1.布尔表达式1 && 布尔表达式2,第一个为假,则直接为假,不看第二个表达式;有假为假,全真为真
2.布尔表达式1 || 布尔表达式2,第一个为真,则直接为真,不看第二个表达式;有真为真,全假为假
3.!布尔表达式
4.其他的 : 布尔表达式1 & 布尔表达式2,布尔表达式1 | 布尔表达式2,全真为真(了解)
四、位运算符
即&(按位与)、|(按位或)、^(按位异或)、~(按位取反)
1. 按位与 &(对应位有0就是0,用于寻找这一位都是1)
1 0 1 1 1 0 0 1
0 0 1 1 0 1 1 1 &
------------------------
0 0 1 1 0 0 0 1
2. 按位或 |(对应位有1就是1,用于寻找这一位都是0,求并集)
1 0 1 1 1 0 0 1
0 0 1 1 0 1 1 1 |
------------------------
1 0 1 1 1 1 1 1
3. 按位异或 ^(不一样的进行或,一样的都是0,用于找不同)
1 0 1 1 1 0 0 1
0 0 1 1 0 1 1 1 ^
------------------------
1 0 0 0 1 1 1 0
4. 按位取反~(1转0,0转1)
1 0 1 1 1 0 0 1~
------------------------
0 1 0 0 0 1 1 0
移位运算(了解)
1. 左移 << (左移相当于乘了2的n次方,n为移的位)
0000 0010 << 1 -> 0000 0100
2 * 2的1次方 = 4
0000 0010 << 2 -> 0000 1000
2 * 2的2次方 = 8
2. 右移 >>(正数补0,负数补1,右移相当于除了2的n次方,n为移的位)
0000 1000 >> 1 -> 0000 0100
8 / 2的1次方 = 4
0000 1000 >> 2 -> 0000 0010
8 / 2的2次方 = 2
3.无符号右移 >>>(补0,没有无符号左移)
1111 1111 >>> 1 -> 0111 1111
五、条件运算符
只有一个三目表达式
即 布尔表达式1?表达式2:表达式3
布尔表达式为真,输出表达式2,反之输出表达式3,表达式2和表达式3的数据类型要一致
六、运算符的优先级
特殊情况:对于位操作相关的运算符稍微注意加括号
不必记忆,括号万岁