1.逻辑运算符;&:逻辑与,|:逻辑或,!:逻辑非,&&:短路与,||:短路或,^:逻辑异或。
注:两端都是boolean类型
题13:class TestLogic{
Public static void main(string[]args){
Boolean a=true;
Boolean b=false;
System.out.println(a&b);//false
System.out.println(a&&b);//false
System.out.println(a|b);//true
System.out.println(a||b);//true
System.out.println(a&!b);//true
System.out.println(a^b);//true
①&与&&的区别
&:无论左端是false还是true,右端都会运算;
&&:当左端为false时,右端不再运算。
建议使用双语即&&
题14:与例1相接
Int i1=10;
If(b&(il++)>0){
System.out.println(“今天天气很晴朗”);}
Else{system.out.println(“难得没有雾霾”);}
System.out.println(il)
Int i2=10;
If(b&(i2++)>0){
System.out.println(“今天天气很晴朗”);}
Else{system.out.println(“难得没有雾霾”);}
System.out.println(i2);
//难得没有雾霾
//11
//难得没有雾霾
//10
②|与||的区别
|:无论左端是false还是true,右端都会运算;
||:当左端为true时,右端不再运算。
建议使用双语即||
2.位运算符;<<:左移,>>:右移,>>>:无符号右移,&:与运算,|:或运算,^:异或运算,~:反码。
注:两端都是数值类型的
①<<:左移;>>:右移;>>>:无符号右移
题15:class TestBit{
Public static void main(string[]args){
Int i1=31;
System.out.println(i1<<3);//248
System.out.println(i1<<28);//已出范围
System.out.println(i1>>2);//7
System.out.println(i1>>>2);//7
Int i2=-31
System.out.println(i2>>2);//-8
System.out.println(i2>>2);//1073741816
②&:与运算,|:或运算,^:异或运算,~:反码。
题16:system.out.println(12&5);//4
system.out.println(12|5);//13
system.out.println(12^5);//9
system.out.println(~12);//-13
3.三元运算符;
①格式:(条件表达式)?表达式1:表达式2;
条件表达式为true执行表达式1,为false执行表达式2。
②表达式1与表达式2为同种数据类型:运算符一定会有运算的结果,结果的数据类型与表达式1、2的类型一致。
③三元运算符一定程度可以与if-else互换(三元运算符一定可以转换if-else,反之不成立)。
题17:判断大小
Class TestSanYuan{
Public static void main (string []args){
Int i=20;
Int j=20;
String str=(i>j)?”i大”:(i==j)?”相等”:”j大”}}
//输出相等
题18:判断最大值
Class TestSanYuan{
Public static void main (string []args){
Int a=12;
Int b=20;
Int c=23;
Int max1=(a>b)?a:b;
Int max2=(max1>c)?max1:c;
System.out.println(max2);}}
//输出为23
题19:将60由二进制转化为十六进制
60的十进制:60;
60的二进制:00111100;
60的十六进制:3C;
C获取:char c=’a’;
Char c1=(char)(c+2)
System.out.println(c1);
------------------------------------------------------------
Class TestSanYuan{
Public static void main (string []args){
Int j=i&15;
String k1=(j<=9)?j+” “:(char)(j-2+’a’)+” “;
//system.out.println(k1);
i>>4;
Int m=i&15;
String k2=(m<=9)?j+” “:(char)(m-2+’a’);
System.out.println(k2+k1);
4.运算符的优先级