一 算数运算符
+ - * / % ++ --
+:作用一:正号 作用二:加法运算 作用三:字符串连接
-:作用一:负号 作用二:减法
* / %:只能用作算数运算,数值与数值的运算(char)
整数/整数=整数
%取模------->求余数
自增运算,自减运算,都只能用于数值类型
在混合运算时:++在前,先自增,后与其他表达式运算
++在后,先与其他表达式运算,后自增
二 比较运算符
> < >= <=只能用于数值之间的比较,包含字符类型
返回值都是布尔类型:true/false
== !=既可以用于数值之间比较大小,还可以比较布尔类型,还可以比较引用数据类型
三 赋值运算符
=把右边的值赋给左边
注意:右边的字面常量需要与左边的类型一致(也可以是小类型隐藏转换为大类型),注意强制转换(右边是大类型左边是小类型是强制转换,会报错)
+= a+=b------>a=a+b
-= a-=b------->a=a-b
*= --------------
/= --------------
short s=3;
s=s+3;会报错,运算结果是int
s+=3;会进行隐藏转换,展开是s=(short)(s+2);
三 条件运算符
结果:(条件表达式)?结果1:结果2;
当条件表达式结果为true时,返回?后面的结果
false时,返回:后面的结果
条件表达式必定要返回结果
返回的结果与接受变量类型都得一致
四 位运算符
位运算符是对整数的二进制进行运算的
<<左移 二进制的比特位向左移动,后面空缺补0
>>右移 二进制的比特位向右移动,带着符号移动
正数移动后,符号位补0,负数移动后,符号位补1
>>>无符号右移,不管符号是正负,移动后统一补0,结果肯定是正数
五 逻辑运算符
&逻辑与 |逻辑或 !逻辑非
&&短路与 ||短路或 ^逻辑异或
与:
逻辑与和短路与:& ,&& 当所有表达式结果都为true时,结果才为true,只要有一个表达式结果为false,结果就为false。
区别: &:不会出现短路现象,已经有表达式结果为false,后面的表达式还会执行。
&&:会出现短路现象,也称呼为短路与,已经有表达式结果为false,后面的表达式不会继续进行下一步,常用效率高。
| || 在表达式中只有一个一个是true,结果也就是true
| 不会出现短路现象,有表达式返回结果为true,但是后面任然会执行
|| 会出现短路现象,一旦出现表达式返回结果为true,后面不在执行。
^逻辑异或:突出重点异,不同结果返回true,相同结果返回false,
!逻辑非:取反
注意:
& | 既可以当作逻辑运算符,也可以当作位运算符
当& |左右是逻辑值(true/false),当作逻辑运算符,
当& |左右是正数,当作位运算符
位运算:
& 把两个整数对应的二进制进行计算,都是1,结果是1,否则结果是0;
0000 0101 =5
0000 0100 =4
上述两行进行运算后结果是
0000 0100 =4
| 都是0,结果才为0,否则是1
0000 0101 =5
0000 0100 =4
上述两行进行运算后结果是
0000 0001 =1
计算机中数值进行存储时,都用补码存储的
正数的补码,反码,源码,三码合一
+5 0000 0101 源码
1111 1011 反码+1
-5 1111 1011 补码
计算机只能做加法运算
负数以补码地形式表示