首页 > 代码库 > 运算符

运算符

1、算数运算符:+ - * / %
++ -- 自增、自减:只能操作【一个】【变量】,即可放在变量之前,也可放在变量之后。
++ 自增:在操作数前,先把操作数加1,再拿来用,在操作数后,先拿来用,再把操作数加1。(加加在前,先加后用,加加在后,先用后加)
++ 自减:在操作数前,先把操作数减1,再拿来用,在操作数后,先拿来用,再把操作数减1。

 

2、位运算符(基于2进制的补码进行运算)

& 按位与:上下都是1,才能得到1。
| 按位或:上下只要有一个1,就会得到1。
^ 按位异或:上下两位不一样,就会得到1。

~ 按位取反:只操作一个数,0变1,1变0(符号位也会变掉)。

<< 左移:在没有数据溢出的情况下,左移N位,相当于在右边补充N个0,即乘以2的N次方。
>> 右移:右移N位,相当于去掉了右边的N位,并在左边补充N个符号位(正数补0,负数补1),即除以2的N次方。
>>> 无符号右移:无符号右移N位,相当于去掉了右边的N位,并在左边补充N个0。

 

3、赋值运算符: =
赋值语句: 变量 = 值
作用:把右边变量的值、直接量的值、表达式的值,赋给左边的变量。
通俗解释:把右边的值“倒入”左边的变量中(与现实不同的是,右边的值只是复制到左边)

注意点:
1)左边只能是【变量】。
2)赋值语句本身是有值的,它的值就是右边要赋的值。

 

4、扩展后的赋值运算符:
定义:赋值运算符可以与所有的双目运算符结合使用,就形成了扩展后的赋值运算符。
双目运算符:需要两个操作数的运算符。( + - * / % & | ^ << >> >>> )
a+=b 相当于 a = (a的类型)(a + b)
a-=b 相当于 a = (a的类型)(a - b)
a*=b 相当于 a = (a的类型)(a * b)
a/=b 相当于 a = (a的类型)(a / b)
a%=b 相当于 a = (a的类型)(a % b)
a&=b 相当于 a = (a的类型)(a & b)
a|=b 相当于 a = (a的类型)(a | b)
a^=b 相当于 a = (a的类型)(a ^ b)
a<<=b 相当于 a = (a的类型)(a << b)
a>>=b 相当于 a = (a的类型)(a >> b)
a>>>=b 相当于 a = (a的类型)(a >>> b)

 

5、比较运算符:只会返回boolean型的值(true、false)
a>b 只有当a大于b时,才返回true。如果a<b 或 a==b,则返回false。
a<b 只有当a小于b时,才返回true。如果a>b 或 a==b,则返回false。
a>=b 当a大于b 或 a==b 时,就返回true。如果a<b,则返回false。
a<=b 当a小于b 或 a==b 时,就返回true。如果a>b,则返回false。
a==b 只有当a等于b时,才返回true。如果a<b 或 a>b,则返回false。
a!=b 当a大于b 或 a小于b 时,就返回true。如果a==b,则返回false。

注意点:
比较运算符的左右两边,可以是变量、直接量、表达式。

 

6、逻辑运算符:
注意:
1)它的操作数要求【只能是boolean值】。
2)它左右边的操作数,可以是变量、直接量、表达式。

逻辑短路与(&&): 两个操作数,都是true时,才返回true。只要一个是false,就会返回false。
逻辑与(&): 不会短路。
逻辑短路或(||): 两个操作数,只要有一个是true,就返回true。两个都是false时,才会返回false。
逻辑或(|): 不会短路。
逻辑取反(!): (单目运算符)原来是true,就变成false。原来是false,就变成true。
逻辑异或(^): 只有两个操作数不同时(一个true、一个false),才返回true。


7、三目运算符:
格式: 逻辑表达式 ? 表达式1 : 表达式2

如果逻辑表达式的值为true,整个表达式的值为表达式1的值,
如果逻辑表达式的值为false,整个表达式的值为表达式2的值。


8、优先级的控制:
尽量使用【小括号】进行控制,可读性也更好。

运算符