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

来源:互联网 发布:淘宝美工如何做首页 编辑:程序博客网 时间:2024/05/16 14:37
---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位对应的值)
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);

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


阅读全文
0 0
原创粉丝点击