1.什么是运算符
对操作数进行操作的符号
运算符可以分为算数运算符,关系运算符,逻辑运算符,位运算符,移位运算符,条件运算符
2.1算数运算符(+-*/%)
System.out.println(10/3);
System.out.println(-10/3);
System.out.println(10/-3);
System.out.println(-10/-3);
System.out.println(10%3);
System.out.println(-10%3);
System.out.println(10%-3);
System.out.println(-10%-3);
System.out.println(10.5%3);
你了解上面这些都会输出什么吗?
3
-3
-3
3
1
-1
1
-1
1.5
对于除法,看全部,有奇数个-就输出-数其余输出正数。
对于求余,看前面,前面是什么符号,答案就是什么符号。
特别一点,java编译时求余符号两边可以有小数也确实会输出小数,这点和c是不同的。
注意
都是二元运算符,使用时必须要有左右两个操作数
int/int 结果还是int ,会向下取余
两侧操作数不一致时,会向类型大的提升
2.2增量运算符(+= -= *= %=)
a+=2;相当于 a=a+2;
a-=2;相当于a=a-2;
a*=2;相当于a=a*2;
a/=2;相当于a=a/2;
a%=2;相当于a=a%2;
2.3自增自减运算符(++ --)
符号在前表示,先加再用;
符号在后表示,先用再加
int a=3;
sout(a++); 输出3
sout(a);输出4
sout(--a);输出3
sout(a);输出3
注意,只有变量才可以使用该运算符。
3.1关系运算符(==,!=,<,>,<=,>=)
需要判断时,会输出布尔类型。
4.1逻辑运算符(&&,||,!)
逻辑与&&
两真为true否则为false
逻辑或&&
两假为false否则为true
逻辑非!
假为true,真为false
5.1位运算符(&,|,~,^)
按二进制位进行运算
6.位移运算符
6.1左移 <<
将二进制位都向左边移动,右边补0,移动几个补几个0;
6.2右移动>>
将二进制位都向右边移动,左边补符号位(负数位1;正数为0);
6.3无符号右移
不管右边的符号位是什么东西,统一补0
注意左移相当于*2;右移相当于/2;
7.条件运算符
表达式1?表达式2:表达式3
当1位true时,执行表达式2,不然执行表达式3;