邏輯運算符

研究問題:

  1. &與&&,|與||區別
  2. 位異或^
  3. 左移<<、右移>>

要點:

  • &與|無論如何都會判斷條件兩邊,&&與||在左條件不成立時就結束判斷
  • 位異或:相同則0,相異則1.
  • a<

截圖展示區:

    1.
class OperatorDemo3{
    public static void main(String[] args){
        int a=10;
        int b=20;

        a=a^b;
        b=a^b;//即a^b^b==a
        a=a^b;//a^b^b=a^b^a==b
        System.out.println("a:"+a+"\tb:"+b);
    }

}

上圖:
這裏寫圖片描述
2.

package com.java.WeiCalc;

/*
位運算符:
    &,|,^,~
    <<,>>,>>>
注意:
    要做位運算,首先要把數據轉換爲二進制。
*/
/*&位與:有0則0
 * |位或:有1則1
 *^位異或:同則0,異則1
 *~按位取反.
 */
class OperatorDemo2 {
public static void main(String[] args) {
    //&,|,^,~

    int a = 3;
    int b = 4;

    System.out.println(3 & 4);
    System.out.println(3 | 4);
    System.out.println(3 ^ 4);
    System.out.println(~3);
}
}
/*
分析:因爲是位運算,所以我們必須先把數據換算成二進制。

3的二進制:11
    00000000 00000000 00000000 00000011
4的二進制:100
    00000000 00000000 00000000 00000100

&位與運算:有0則0。
    00000000 00000000 00000000 00000011
   &00000000 00000000 00000000 00000100
    -----------------------------------
    00000000 00000000 00000000 00000000
    結果是:0

|位或運算:有1則1。
    00000000 00000000 00000000 00000011
   |00000000 00000000 00000000 00000100
    -----------------------------------
    00000000 00000000 00000000 00000111
    結果是:7

^位異或運算:相同則0,不同則1。
    00000000 00000000 00000000 00000011
   &00000000 00000000 00000000 00000100
    -----------------------------------
    00000000 00000000 00000000 00000111
    結果是:7

~按位取反運算符:0變1,1變0
    00000000 00000000 00000000 00000011
   ~11111111 11111111 11111111 11111100 (補碼)

   補碼:11111111 11111111 11111111 11111100
   反碼:11111111 11111111 11111111 11111011
   原碼:10000000 00000000 00000000 00000100
    結果是:-4
*/

上圖:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章