Java語言運算符

1 分類spa

 1) 按操做數數目來劃分:
   1)單目運算符
  2)雙目運算符
  3)三目運算符:三元運算符
 2) 按功能來劃分:
       1)算術運算符code

       2)賦值運算符blog

       3)比較運算符內存

       4)邏輯運算符table

       5)位運算符class

2 算術運算符二進制

+ 加法
- 減法
* 乘法
/ 除法
% 餘數

 

 

 

 

 

 

 

    System.out.println(1 + 1);//2
    System.out.println(2 - 1);//1
    System.out.println(4 * 2);//8
    System.out.println(4 / 2);//2
    System.out.println(12 % 2);//2

3 賦值運算符tab

=
+=
-=
*=
/=
%=
++
--
&=
|=
^=
>>=
<<=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

        //>>=
int
a1 = 12; //a1 >>=2 --> a1 = a1 >> 2 //1100 --> 0011 = 3 a1 >>= 2; System.out.println(a1);//3
//<<= int a2 = 5; //a2 <<= 2 --> a2 = a2 >> 2 //0101 --> 10100 = 20 a2 <<= 2; System.out.println(a2);//20
//&= int b1 = 10; //b1 &= 5 --> b1 = b1 & 5 //1010 & 0101 = 0000 = 0 b1 &= 5; System.out.println(b1);//0
//|= int b2 = 10; //b2 |= 5 --> b2 = b2 | 5 //1010 | 0101 = 1111 = 15 b2 |= 5; System.out.println(b2);//15
//^= int b3 = 10; // b3 ^= 6 --> b3 = b3 ^ 6 // 1010 ^ 0110 = 1100 = 12 b3 ^= 6; System.out.println(b3);//12

4 比較運算符di

== 等於
> 大於
< 小於
>= 大於等於
<= 小於等於
!= 不等於

 

 

 

 

 

 

 

 

5 邏輯運算符co

& 邏輯與
| 邏輯或
&& 短路與
|| 短路或
!

 

 

 

 

 

 

 

6 位運算符

|
&
^ 異或
~

 

 

 

 

 

1)與 

       //邏輯與:
        //當相同的位上均爲1時結果爲1,不然結 果爲0
        
        //練習1:
        // 12 --> 1100
        // 5  --> 0101
        // 1100 & 0101 = 0100 = 4
        System.out.println(12 & 5);//
        
        //練習2:
        // 7  --> 0111
        // 9  --> 1001
        // 0111 & 1001 = 0001 = 1
        System.out.println(7 & 9);//1

2)或

       //邏輯或
        //當兩邊操做數的位有一邊爲1時,結果爲1,不然爲0
        
        //練習1:
        //7 --> 0111
        //9 --> 1001
        //0111 | 1001 = 1111 = 15
        System.out.println(7 | 9);//15
        
        //練習2:
        //4 --> 0100
        //8 --> 1000
        //0100 | 1000 = 1100 = 12
        System.out.println(4 | 8);//12

3)異或

       //異或
        //兩邊的位不一樣時,結果爲1,不然爲0
        
        //練習1:
        // 12 --> 1100
        // 5  --> 0101
        // 1100 ^ 0101 = 1001 = 9
        System.out.println(12 ^ 5);//9
        
        //練習2:
        // 8  --> 1000
        // 9  --> 1001
        // 1000 ^ 1001 = 0001 = 1
        System.out.println(8 ^ 9);//1

4)非~

        ////將數字補碼取反  1變0 0變1
        
        //練習1:
        byte a = 10;
        //a 轉換爲二進制 00001010
        //由於是正數 原碼 = 反碼 = 補碼
        //補碼爲00001010
        //補碼經過非~進行取反
        //獲得結果爲 11110101
        //此數爲補碼 第1位爲1 是負數
        //11110101(補碼)  --> 11110100(反碼) --> 10001011(原碼)
        //10001011 = -11
        System.out.println(~a);//-11
        
        //練習2:
        //8默認爲int類型 佔用內存爲4字節 = 32比特
        //轉換爲二進制爲32位   0+23個0+00001000
        //由於是正數 原碼 = 反碼 = 補碼
        //補碼爲 0+23個0+00001000
        //補碼經過非~進行取反
        //獲得結果爲  1+23個1+11110111 
        //此數爲補碼 第1位爲1 是負數
        //1+23個1+11110111 (補碼)  轉換成反碼
        //1+23個1+11110110(反碼)  轉換成原碼
        //1+23個0+00001001(原碼)  = -9
        System.out.println(~8);//-9
        
        //練習3:
        short s = -7;
        //-7的二進制爲 1 0000000 00000111(原碼)
        //1 1111111  11111000(反碼)
        //1 1111111  11111001(補碼)
        //補碼經過非~進行取反
        //0 0000000  00000110(補碼)
        //由於是正數 原碼 = 反碼 = 補碼
        //0 0000000  00000110(原碼) = 6
        System.out.println(~s);//6
相關文章
相關標籤/搜索