![](https://i-blog.csdnimg.cn/blog_migrate/9e7999deadbc448d9e3d6aede3c01d08.png)
算术运算符
取值范围由小到大:byte < short < int < long < float < double
隐式转换(自动类型提升):把取值范围小的数值转换成取值范围大的数值
byte short char 直接转成int类型参与计算
强制转换
格式:目标数据类型 变量名 = (目标数据类型)被强转的数据
![](https://i-blog.csdnimg.cn/blog_migrate/943b20e287a3fcf53fa18fe93fb678a5.png)
字符串的“+”操作:拼接(连续进行的+操作,从左到右逐个执行)
当字符 + 字符 / 字符 + 数字 会把字符通过ascll转换成对应的数字再计算。
自增自减运算符
++ : 变量的值加1
-- : 变量的值减1
单独使用:++ 和-- 可以放在变量的前面也可以放在变量的后面,单独写一行的结果是一样的
参与计算:int a = 10;int b = a++; //(先用后加)b = 10
int a = 10;int b = ++a; //(先加后用)b = 11
赋值运算符
=:赋值
+=:加后赋值 a+=b(将a+b的值给a)
-=:减后赋值
*=:乘后赋值
/=:除后赋值
%=:取余后赋值
细节:以上的底层都隐藏强制类型转换 等同于a = (左边类型)(a + b);
关系运算符(比较运算符)
==
!=
>
>=
<
<=
(成立为true,不成立为false),结果都是boolean类型
逻辑运算符
&逻辑与,两边都为真,结果才为真
|逻辑或,两边都为假,结果才为假
^逻辑异或,相同为false,不同为true
!逻辑非,取反
短路逻辑运算符:
&&短路与,结果跟&一样,但是有短路效果
||短路或,结果跟|一样,但是有短路效果
短路效果:当左边的表达式能确定最终的结果,右边就不会参与运行,提高效率
三元运算符
格式:关系表达式 ?表达式1 :表达式2;
三元运算符的结果必须要被使用
运算符优先级
![](https://i-blog.csdnimg.cn/blog_migrate/4dd2543b13360224f3d54ae18bc238a8.png)
原码反码补码
![](https://i-blog.csdnimg.cn/blog_migrate/4faca97ec620aeb5d30ad93fb8e99d87.png)
反码:为了解决原码不能计算负数的问题而出现的
补码:为了解决负数计算时跨0的问题而出现的
![](https://i-blog.csdnimg.cn/blog_migrate/df7596fe28973075df4df29fa289bf5e.png)
计算机的存储和计算都是以补码的形式进行的
其他运算符
![](https://i-blog.csdnimg.cn/blog_migrate/886fcef35b1d8ebea8d27ae9e44550f3.png)