您的位置:首页 > 编程语言 > Java开发

03.Java语言基本语法之运算符,算数、赋值、比较、逻辑、位、三元运算等

2017-11-14 23:30 525 查看
---1.12算术运算符:

+(正号),-(负号),+(加),-(减),*,/,%,++,--,+(连接符)
取模:%取余数,结果的符号和被模数一致。

13%5=3

13%(-5)=3

-13%5=-3

-13%(-5)=-3

------
++前:先自增1,后做运算

后++:先做运算,后自增1

int a=10;

int b=a++;

int c=10;

int d=++c;
---2.3赋值运算符和比较运算符:
①赋值运算符:+=,-=,*=,/=,%=

short s=10;
s+=1;//既可以实现运算,又不会改变s的数据类型;

int i=1;

i*=0.1;//此时i=0;因为数据类型没有变化
②比较运算符:

==,!=,<,>,<=,>=,instanceof(检查是否是类的对象);

------
③逻辑运算符:

&(逻辑与)

|(逻辑或)

!(逻辑非)

&&(短路与)

||(短路或)

^(逻辑异或)a^b,相同为false,不同为true;
&和&&逻辑与和短路与的区别:短路与在左边确定是false的时候,右边的程序不会进行运算;



④位运算符:直接对二进制进行运算,注意:无<<<

<<(左移:3<<2=12-->3*2*2=12)

>>(右移:3>>1=1-->3/2=1,正数前面补0,负数前面补1)

>>>(无符号右移:3>>>1=1--->3/2=1,前面都补0)
&(与运算:6&3=2;12&5=4)
|(或运算:6|3=7;12|5=13)
^(异或运算:6^3=5;12^5=9)

~(反码:~6=-7;~12=-13)

位运算与和或:



位运算之异或和取反:



----------------------
2个变量交换数值的方法:

public static void main(String[] args){

int m=12; int n=5;

//方法一:提供一个临时变量:

int temp = m;

m=n;

n=temp;

System.out.println("m:"+m+",n:"+n);

//方法二:当m和n较大时,有可能出现精度损失:

m=m+n;//(m=12+5)

n=m-n;//(n=17-5)

m=m-n;//(m=17-12)

System.out.println("m:"+m+",n:"+n);

//方法三:异或:

m=m^n;

n=m^n;//((m^n)^n=m)

m=m^n;//((m^n)^m=n)

System.out.println("m:"+m+",n:"+n);

}
---2.6三元运算符:

格式:(条件表达式)?true①:false②;(既然是运算符,就一定会有运算结果,要求①②和运算结果是同种数据类型),可以简化if/else语句,但必须有返回值,需要处理很多语句时还是用if语句;

Q:从控制台输出60的十六进制。

int i=60;

//方法1:自动调用Integer类现成的方法:

String binary=Integer.toBinaryString(i);//转化为二进制

String hex=Integer.toHexString(i);//转化为十六进制

//方法2:运用与方法:

int j=i&15;//(15是1111,通过此方法获得i的最低4
9867
位对应的值)

String k=(j<=9)?j+"":(char)(j-10+'a')+"";//最低4位对应16进制的值,然后i>>4右移4位,继续上面的与方法;

int j1=(i>>4)&15;

String k1=(j1<=9)?j+"":(char)(j1-10+'a')+"";

System.out.println(k1+k);

最后是运算符的优先级,建议分开步骤写,下面不重要:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: