有关一些运算符的小知识
short b=2;
b=(short)(b+3); // 进行两次运算,第一次是相加,二是将值赋给b
b+=3; // 进行一次运算,只做赋值运算,会自动转型
关系运算符:>,<,>=,<=,==,!=;
数学中:1<2<3
注:计算机中不能这样写
注意:
1 、有关运算符的结果只有“true”和“false”
2、比较运算符 “=”不等于“==”
逻辑运算符:!、&、|、^、&&、||
逻辑表达式的值:true/false
& 与 、 | 或 、! 非
&& 短路与
|| 短路非
^ 异或 ==》相同为false ,不同为true;
&&与…&的区别:
& 无论表达式的左边是true,还是false,右边都要执行
&& 当左边为 false 时,右边就不执行,左边为 true 时,继续执行
|| 与 | 的区别:
| 两边都要执行
|| 当左边为 true 时 ,右边就不执行
位运算符:&、|、^、~、>>、<<、>>>
>> 右位移运算符,带符号右移;最高位是什么,就补什么 ,0 补0,,1 补 1。
<< 左位移运算符
>>> 无符号右移运算符,无论最高位是什么,右移后都补 0 ;
& 按位与
6 & 3 =2
1 1 0
& 0 1 1
----------
0 1 0 有假为假,同真为真
| 按位或
6 | 3=7
1 1 0
| 0 1 1
-----------------
1 1 1 有真为真,同假为假
^ 按位异或
5 ^ 6=3
1 0 1
^ 1 1 0
---------------
0 1 1 相同为 0 ;不同为 1
5^6^5=5 一个数异或同一个数两次,结果还是那个数
~ 按位取反
取反 0 取反等于 1 , 1 取反等于 0(1取反等于-1,加 1 之后等于 0); 注:取反之后 加 1
知识点:两个整数变量的值进行交换;
方法一:使用第三方变量
int a=5;
int b=7;
int c=0;
c=a;
a=b;
b=c;
System.out.println("a="+a+"b="+b);
方法二:两个数相加
int a=5,b=4;
a=a+b;
b=a-b;//(a+b)-b
a=a-b;
System.out.println("a="+a+"b="+b);
方法三:^ 一个数异或同一个数两次,结果还是它int n=3,m=4;
n=n^m;
m=n^m; //(n^m)^m
n=n^m; //n^(n^m)
System.out.println("n="+n+"m="+m);
字符串连接符号:+
字符串数据和任何数据使用+都是相连接的意思,最终都变成字符串
例: System.out.println("6+6"+6+6);
输出结果为 6+666
知识点:三元运算符
格式: x ? y : z ==》结果是 true,输出,执行y,否则执行z
x,y,z 代表关系表达式
运算的优先级和转义字符
赋值运算符 : 从左向右看
转义字符:用在字符串,用来定制字符串输出格式的特殊符号
\t 一个退格键
\n 换行(Linux,Unix中常用)
\r 回车(Windows下面 ,换行 \r\n)