JAVA运算符

运算由表达式表示

表达式由运算符和运算分量组成

运算分量可以是常量、变量、方法调用

 

运算符按功能划分:

赋值运算  算术运算   关系运算   逻辑运算   条件运算  位运算等

 

赋值运算和算术运算

按运算符操作的操作数数量划分为三类

一元运算符   ++    --   +(正)    -()

二元运算符   +   -   *   /   %  <  >  <=  >=  != (<>)

三元运算符   :

 

 

int i = 3;

int b = ++i;  //b= 4   i先自增1再赋值给b

int c = i++;  //c =4   i先赋值给c在自增

 

 

关系运算和逻辑运算

关系运算符

 <  >  <=  >=  != (<>)  ==

 

逻辑运算符

&& 逻辑与  有假即为假  全部为真才为真

|| 逻辑或  有真即为真  全部为假才为假

! 逻辑非  取反

 

关系运算符和逻辑运算符的优先级

1.!(取反)

2.>  >=   <   <=  

3.==  =

4. &&

5. ||

 

 

位、赋值、条件运算符

位运算符

  1. ~按位取反  1 = ~0
  2. &按位与   0&1 = 0   1&1 =1  0&0 = 0
  3. |按位或    0|1 = 1   1|1 =1  0|0 = 0
  4. ^按位异或  0^1 = 1   1^1 =0   0^0 =0

5.移位运算符 <<算符左移运算  >>算术右移运算  >>>逻辑右移运算符

 

 

正数取反

       ~0000 0000 0011 0101   ~53

第一步1111 1111 1100 1010   每一位取反

  第二步1111 1111 1100 1001   再减1

  第三步1000 0000 0011 0110   第一位保持不动其他在取反 = -54

负数取反

第二步改为加1其他不变

 

  0000 0000 0011 0101    53

&0000 0000 0001 0110    22

  0000 0000 0001 0100    20

 

  0000 0000 0011 0101   53

| 0000 0000 0001 0110   22

  0000 0000 0011 0111   55

 

           异或

  0000 0000 0011 0101   53

^ 0000 0000 0001 0110   22

  0000 0000 0010 0011   35

 

左移

 0000 0000 0000 0100  4<<3

 0000 0000 0010 0000  64   (4*(2^3))

 

右移

  0000 0000 0000 1100   12>>2

  0000 0000 0000 0011   3  (12/(2^2))

 

1111 1111 1111 0100  -12>>2

1111 1111 1111 1101   -3

 

 

 

优先级别

~  <<  >>  >>>  &  ^  |

 

扩展赋值运算符

+= -= *= /= %= ^=

&= |= >>= <<= >>>=

 

条件运算符

逻辑表达式? 表达式1 : 表达式2;

posted @ 2018-04-01 10:10  苇小宝  阅读(159)  评论(0编辑  收藏  举报