首页 > 代码库 > 运算符及题目(2017.1.8)

运算符及题目(2017.1.8)

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.运算符的优先级

技术分享

 

 

 

运算符及题目(2017.1.8)