2019年1月10日 星期四

java - Operator運算子、符號、元

Operator運算子

(一)算術運算子
運算子是 :  + , - ,*,/,%
(二)指定運算子,遞增,遞減
1)  =  :指定 ,assign,不是相等
變數 =  值,變數,計算式  (先執行產生值)

2) += ,  -= , *=,  /=,%= ,++ , --
=> 變數值為堆疊運算

(三)關係運算子  => 節點 1.true 2.false
=> >,< , >= , <= , == ,!=

(四)條件運算子 =>  多個條件
=>  &&  是 And
=>  ||       是 or
=>  ^       是 xor
=>  |        是 not (反轉) 1.true 會變成false ,  2.false  會變成true

(五)位元運算子=> 2進位
=> &,| ,^,~(補數) 1. 0 1 2 3 4 5 6   2. -1 -2 -3 -4 -5 -6 -7
(六)位移運算子 => 2進位
=> >>(右移)  <<(左移)


class ex2
{
public static void main(String args[])
{
int x=10;
int y=3;

System.out.println("x+y="+(x+y));
System.out.println("x-y="+(x-y));
System.out.println("x*y="+(x*y));
System.out.println("x/y="+((float)x/y)); //還沒有運算先轉型
System.out.println("x%y="+(x%y));


}

}

執行結果:


2.例子
class ex2
{
public static void main(String args[])
{
int x=10;
System.out.println("x="+x);
x=x+20; //會在記憶體下面 不會被清除

System.out.println("x="+x);



int y=50;
int z=20;
//int x=y*20-10; 需要為對等式 不然會抱錯

//x+y=2*z+50;


System.out.println("x="+x);







}

}
執行結果:

例子3:
class ex2
{
public static void main(String args[])
{
int chinese=10;
//chinese=chinese+20;
chinese+=20;
System.out.println("chiense="+chinese);


int chinese2=10;
//chinese2=chinese2-20;
chinese2-=20;

System.out.println("chiense2="+chinese2);



int chinese3=10;
//chinese3=chinese3*20;
chinese3*=20;

System.out.println("chiense3="+chinese3);



int chinese4=10;
//chinese4=chinese4/2;
chinese4/=2;

System.out.println("chiense4="+chinese4);



int chinese5=10;
//chinese5=chinese5%3;
chinese5%=3;

System.out.println("chiense5="+chinese5);







}

}
執行結果:




例子3:
class ex3
{
 public static void main(String args[])
 {
  int x=10;
  int y;
  
  //x++;
  //++x;
  //y=x++;//y=x;x=x+1; 
  y=++x;//x=x+1;y=x; 會先進行前面相加  然後再把值給給 y
  
  System.out.println("x="+x);
  System.out.println("y="+y);
  
  
  
  /*
  int x=10;
  //x=x+1;
  //x+=1;
  //x++;
  ++x;
  
  System.out.println("x="+x);
  */
 
 }


}
執行結果:

舉例: 4
class ex4
{
public static void main(String args[])
{
int chi=65;

System.out.println("chi>60-->"+(chi>60));
System.out.println("chi<60-->"+(chi<60));
System.out.println("chi>=60-->"+(chi>=60));
System.out.println("chi<=60-->"+(chi<=60));
System.out.println("chi==60-->"+(chi==60));
System.out.println("chi!=60-->"+(chi!=60));

}


}

執行結果:

舉例: 5
class ex2
{
public static void main(String args[])
{
int chi=65;
int eng=55;

System.out.println("chi>=60 &&  eng>=70--->"+(chi>=60 && eng>=70));
System.out.println("chi>=60 ||  eng>=70--->"+(chi>=60 || eng>=70));

/*
int chi=65;

System.out.println("chi>60-->"+(chi>60));
System.out.println("chi<60-->"+(chi<60));
System.out.println("chi>=60-->"+(chi>=60));
System.out.println("chi<=60-->"+(chi<=60));
System.out.println("chi==60-->"+(chi==60));
System.out.println("chi!=60-->"+(chi!=60));
*/

}


}
執行結果:





範例:6
class ex2
{
public static void main(String args[])
{
int chi=65;
int eng=75;

System.out.println("chi>=60 &&  eng>=70--->"+!(chi>=60 && eng>=70));
System.out.println("chi>=60 ||  eng>=70--->"+(chi>=60 || eng>=70));
System.out.println("chi>=60 ^  eng>=70--->"+(!(chi>=60) ^ eng>=70));
// (!(chi>=60)  上面加上" !"  可以反轉 結果
/*
int chi=65;

System.out.println("chi>60-->"+(chi>60));
System.out.println("chi<60-->"+(chi<60));
System.out.println("chi>=60-->"+(chi>=60));
System.out.println("chi<=60-->"+(chi<=60));
System.out.println("chi==60-->"+(chi==60));
System.out.println("chi!=60-->"+(chi!=60));
*/

}


}
執行結果:






範例:7
class ex2
{
public static void main(String args[])
{
int chi=65;
int eng=75;

System.out.println("chi>=60 &&  eng>=70--->"+!(chi>=60 && eng>=70));
System.out.println("chi>=60 ||  eng>=70--->"+(chi>=60 || eng>=70));
System.out.println("chi>=60 ^  eng>=70--->"+(!(chi>=60) ^ eng>=70));

System.out.println("======================================");
System.out.println("chi>=60 &  eng>=70--->"+!(chi>=60 & eng>=70));
System.out.println("chi>=60 |  eng>=70--->"+(chi>=60 | eng>=70));

System.out.println("======================================");


System.out.println(5&2); //二進為算法  只要有0都是0
System.out.println(5|2); //二進為算法  只要有1都是1
System.out.println(5^2); //二進為算法  只要有不是1 1都是0

System.out.println("======================================");

System.out.println(~2);  //補數
System.out.println(~(-2)); //補數

System.out.println("======================================");

System.out.println(5>2);  //單一個 >  是比大小 答案會是 對或錯
System.out.println(5>>2);  //右移  前面是  要位移的數字後面是要移動幾個位數
System.out.println(5<<2);  //右移  前面是  要位移的數字後面是要移動幾個位數



/*
int chi=65;

System.out.println("chi>60-->"+(chi>60));
System.out.println("chi<60-->"+(chi<60));
System.out.println("chi>=60-->"+(chi>=60));
System.out.println("chi<=60-->"+(chi<=60));
System.out.println("chi==60-->"+(chi==60));
System.out.println("chi!=60-->"+(chi!=60));
*/

}


}
執行結果:

算法:

二進位算法

5 >>  00000101
2>>   00000010  (&)
_________________    答案 0
         00000000

5 >>  00000101
2>>   00000010  (|)
_________________  答案 7
         00000111

5 >>  00000101
2>>   00000101  (^)
_________________  答案 2
         00000010 


左移右移

5 >>  00000101 

5>>2  5 右移 2位      答案  1 :  00000001   ※移除要補0


5 >>  00000101 

5<<2  5 左移 2位      答案  20 : >>  00010100   ※移除要補0









沒有留言:

張貼留言