.Net转Java自学之路—基础巩固篇二(运算符)
运算符:
1、算术运算符
+ - * / %(取余)
++:自增(前/后)前:a=2;b=++a; a=3;b=3;后:a=2;b=a++; a=3;b=2
--:自减(前/后)前:a=2;b=--a; a=1;b=1;后:a=2;b=a--; a=1;b=2
2、赋值运算符
= += -= *= /= %=
3、比较运算符
== != < > <= >= instanceof 检查是否是类的对象(“abc” instanceof String)
4、逻辑运算符
& 并且 两边都为true则为true
| 或 两边都为false则为false
^ 异或 两边相同则为false;不同则为true
! 非
&& 并且 判断规则和&一样;不同在于从左执行找到一个false则右边不再执行
|| 或 判断规则和|一样;不同在于从左执行找到一个true则右边不再执行
5、位运算符
对二进制进行操作的符号。
a、<< 左移
算法:
整数M左移n位:就是M的二进制数据左移n位,最高位(左边)溢出的n位去除,最低位(右边)空缺的n位用0来补充;得出的二进制数据转换成十进制数据就是整数M左移n位等到的结果
结论:
整数M左移n位 = M<<n = M * 2的n次方。
b、>> 右移
算法:
整数M右移n位:就是M的二进制数据右移n位,最低位(右边)溢出的n位去除,最高位(左边)空缺的n位用0或1来补充;得出的二进制数据转换成十进制数据就是整数M右移n位等到的结果。
特点:
1、如果最高位(最左边)为0,右移后,最高位用0补充。
2、如果最高位(最左边)为1,右移后,最高位用1补充。
结论:
整数M右移n位 = M>>n = M / 2的n次方。
c、>>> 无符号右移
算法及特点:
无符号右移,无论最最高位(最左边)是0或是1,无符号右移后,最高位都用0填充。
运用:
每次整数M二进制数据无符号右移四位,取出溢出四位的二进制转换成十六进制;这样依次无符号右移四位,可以完成该整数M对十六进制的转换。
d、& 与
进行俩个整数二进制的“与”运算。
运用:
取出二进制某一段有效数据?
方式:二进制当前该段的二进制数据与对应的1进行“与”运算。
实例:
取出二进制最低四位的有效数据。
设:0000-0000 0000-0000 0000-0000 1110-0111
& 0000-0000 0000-0000 0000-0000 0000-1111
等于0000-0000 0000-0000 0000-0000 0000-0111
e、| 或
进行俩个整数二进制的“或”运算。
f、^ 异或
进行俩个整数二进制的“异或”运算。
特点:
一个整数异或同一个数俩次,结果还为该整数。
M ^ x = N (相当于加密)
N ^ x = M (相当于解密)
x 相当于密匙
g、~ 反码、取反
二进制取反,0变1,1变0。
实例:
~7:7的二进制取反
0000-0000 0000-0000 0000-0000 0000-0111
1111-1111 1111-1111 1111-1111 1111-1000
负数的二进制表达方式:是对应的整数进行取反再加1
实例:
负7的二进制表达方式
0000-0000 0000-0000 0000-0000 0000-0111
取反1111-1111 1111-1111 1111-1111 1111-1000
加0000-0000 0000-0000 0000-0000 0000-0001
等于1111-1111 1111-1111 1111-1111 1111-1001 负7的二进制表达方式。
6、三元运算符
?
条件表达式?表达式一:表达式二