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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章