JAVA運算符回顧

JAVA運算符操作回顧


public static void main(String[] args) {
        // 1、左移( << )
        // 0000 0000 0000 0000 0000 0000 0000 0101 然後左移2位後,低位補0://
        // 0000 0000 0000 0000 0000 0000 0001 0100 換算成10進製爲20
        System.out.println(5 << 2);// 運行結果是20

        // 2、右移( >> ) 高位補符號位
        // 0000 0000 0000 0000 0000 0000 0000 0101 然後右移2位,高位補0:
        // 0000 0000 0000 0000 0000 0000 0000 0001
        System.out.println(5 >> 2);// 運行結果是1

        // 3、無符號右移( >>> ) 高位補0
        // 例如 -5換算成二進制後爲:0101 取反加1爲1011
        // 1111 1111 1111 1111 1111 1111 1111 1011
        // 我們分別對5進行右移3位、 -5進行右移3位和無符號右移3位:
        System.out.println(5 >> 3);// 結果是0
        System.out.println(-5 >> 3);// 結果是-1
        System.out.println(-5 >>> 3);// 結果是536870911

        // 4、位與( & )
        // 位與:第一個操作數的的第n位於第二個操作數的第n位如果都是1,那麼結果的第n爲也爲1,否則爲0
        System.out.println(5 & 3);// 結果爲1
        System.out.println(4 & 1);// 結果爲0

        // 5、位或( | )
        // 第一個操作數的的第n位於第二個操作數的第n位 只要有一個是1,那麼結果的第n爲也爲1,否則爲0
        System.out.println(5 | 3);// 結果爲7

        // 6、位異或( ^ )
        // 第一個操作數的的第n位於第二個操作數的第n位 相反,那麼結果的第n爲也爲1,否則爲0
        System.out.println(5 ^ 3);//結果爲6

        // 7、位非( ~ )
        // 操作數的第n位爲1,那麼結果的第n位爲0,反之。
        // 00000101 按位取反 -> 11111010 -> 此時仍爲補碼,換算爲原碼(補碼轉換成十進制就是符號位不變其他位按位取反加1) -> 10000101 加1 -> 10000110
        System.out.println(~5);// 結果爲-6
    }

 

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