java运算符 一次说清楚
运算符
Java 语言支持如下运算符:优先级 ()
算术运算符:+,-,,/,%,++,--
赋值运算符=
关系运算符:>,<,>=,<=,==,!= instanceof
逻辑运算符: &&,||,!
位运算符: &,|,^,~ ,>>,<<,>>>(了解!!!)
条件运算符(三元运算符) ?:
扩展赋值运算符:+=,-=,=,/=
例如:
// 二元运算符
int a = 10;
int b = 20;
int c=25;
int d=25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b)
其中第四点需要注意的是如果整数相除得到了浮点型数据,需要提前转换类型,不然缺少精度或者结果不对。
如下表述:
a+=b; //a = a+b
a-=b; //a = a-b
//字符串连接符,
StringSystem.out.println(""+a+b);
System.out.println(a+b+"");
如果String类型放前面则为链接符 输出结果为 1020
放后面则先计算前面为 30
位运算 在前面也讲过一些,如下:
A=0011 1100
B=0000 1101
A&B=0000 1100 一样则为数据,否则为0
A|B=0011 1101 样则为数据,否则为1
A^B=0011 0001 0相同为0 ,相同1取反0,其余为1
~B= 1111 0010 取反
例如 位运算二进制 效事极高!!!
32如何计算最快:
216=32 28=16 则为22222
位运算 向前移动几位 为乘2
<< *2
位运算 向后移动几位 为除2
/2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
0010 0000 32
二进制2需要得到32 需要向前移动 4位 则为32