1. 程式人生 > 其它 >Java學習筆記11

Java學習筆記11

邏輯運算子 位運算子

邏輯運算

public class Demo05 {
  //邏輯運算子 && ,||, !
  //與(and)   或(or)   非(取反)
  public static void main(String[] args) {
      boolean a = true;
      boolean b = false;
      System.out.println("a && b:"+(a&&b));//邏輯與運算:兩個變數都為真,結果才為真
      System.out.println("a || b:"+(a||b));//邏輯或運算:兩個變數有一個為真,則結果為真
      System.out.println("! (a && b):"+!(a&&b));//邏輯非運算,如果是真則為假,如果是假,則為真
       
       
a && b:false
a || b:true
! (a && b):true

      //短路運算
      int c = 5;
      boolean d = (c<4)&&(c++<4);
      System.out.println(d);
      System.out.println(c);//與運算c<4為錯將不執行後面(c++<4)
       
false
5
  }
}

位運算(與二進位制有關)

&, | ,! ,^(與,或,非,異或)

《 (左移) *2

》(右移) /2

public class Demo06 {
  public static void main(String[] args) {
      /*
      A = 0011 1100
      B = 0000 1101
      A&B=0000 1100 當都為1結果為1其餘都為0
      A|B=0011 1101 只要有1結果為1
      (異或)A^B=0011 0001 只有一個1的情況下才為1
      ~B= 1111 0010 與B結果相反
        */
      System.out.println(2<<3);
      /*
      2*8=16   2*2*2*2
      0000 0000   0
      0000 0001   1
      0000 0010   2
      0000 1000   8
      0001 0000   16   2左移三位得到16
        */
       
       
        16