java運算符

java語言支持的運算符:

相關概念的辨析

邏輯運算符:

位運算:

1.左移 <<
 3<<2  == 3*2*2
3:  00000000 00000000 0000000 00000011
 00|000000 00000000 0000000 0000001100

 3<<2:000000 00000000 0000000 0000001100   ----  12

2.右移 >>   有符號右移:  補全 補的是符號位
  6>>2 -----6/2/2
 6: 00000000 00000000 0000000 00000110
    0000000000 00000000 0000000 000001|10
  6>>2 :0000000000 00000000 0000000 000001   -   1


  -6>>2

  6:  00000000 00000000 0000000 00000110
取反:11111111 11111111 1111111 11111001
加1: 11111111 11111111 1111111 11111010 ---- -6
      1111111111 11111111 1111111 111110|10
  -6>>2:  1111111111 11111111 1111111 111110 ---一看就是一個負數:
  減1:   1111111111 11111111 1111111 111101
  取反:  0000000000 00000000 0000000 000010 ---2
  加負號:  -2


3.無符號右移   >>>

 6>>>2  
 6: 00000000 00000000 0000000 00000110
    0000000000 00000000 0000000 000001|10
  6>>>2 :0000000000 00000000 0000000 000001   -   1
4.與操作:
6&2:
6:00000000 00000000 0000000 00000110
2:00000000 00000000 0000000 00000010
------------------------------------------
   00000000 00000000 0000000 00000010  -----2

5.或操作:
6|2
6:00000000 00000000 0000000 00000110
2:00000000 00000000 0000000 00000010
------------------------------------------
   00000000 00000000 0000000 00000110  ---6


6.異或:
6^2
6:00000000 00000000 0000000 00000110
2:00000000 00000000 0000000 00000010
------------------------------------------
   00000000 00000000 0000000 00000100  ----4


7.反:
~6
6:00000000 00000000 0000000 00000110
~:11111111 11111111 1111111 11111001 ----一看這就是個負數:
-1:  11111111 11111111 1111111 11111000
取反:00000000 00000000 0000000 00000111----  7
加負號:  -7



byte   :   -128~127

  -128
 10000000  11111111

       11111111  ----一看就是個負數:
減1:  11111110
取反: 00000001   ----1
加負號: -1

       10000000   ----一看就是個負數:
減1:  01111111
取反: 10000000  ---  2^7  =128  
加負號: -128


發佈了32 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章