JavaSE-运算符

1.基础运算符 

运算符描述 先运算后赋值 先赋值后运算
自增 ++ x x ++
自减 -- x x --

 

 

 

 

例如:

int a = 1;
System.out.println((a++)+","+(++a));//1,3

2.三目运算符

三目运算是一种赋值运算,根据条件来判断赋哪个值,语法如下:

数据类型 变量名 = 布尔表达式 ?满足时赋值:不满足时赋值;

示例:

int a = 2;
int b = 3;
System.out.println((a+b)>3 ? (a+b):(a*b));//5

3.关系运算符

分类:>、<、>=、<=、==

所有关系运算符的返回值均为布尔类型,经常与逻辑判断语句一起使用

示例:

int x = 9;
char y = '9';
System.out.println(x == y);//false

4.逻辑运算符

分类:

  • 与:&   &&
  • 或:|     ||
  • 非:!

在if语句中:

     使用“|”(或“&”)时,表示多个条件语句都需要判断,即使有表达式中已经有条件语句返回true(或false),剩余条件仍然需要判断;

     短路非(与):使用“||”(或“&&”)时,只要有条件语句返回true(或false),剩余条件语句不再进行判断,直接返回结果。

5.位运算符

分类:&  |  <<    >>   ^   ~  >>>

位运算符主要用于密码学,开发中使用不多

位运算的关键在于二进制和十进制的转换

  • &(与):有0则0,全1为1
  • |(或):有1则1,全0为0
  • ~(非):遇0为1,遇1则0
  • ^(异或):相同为0,不同为1
  • <<(左移):二进制数整体左移,在低位处补0
  • >>(右移):若值为正则在高位处补0,若值为负,在高位处补1
  • >>>(无符号右移):无论正负都在高位处插入0

示例:

//2:0000 0010(B),8:0000 1000(B)
System.out.println(2&8);//2&8 : (0000 0010) & (0000 1000) = (0000 0000); 0  
System.out.println(2|8);//2|8 : (0000 0010) | (0000 1000) = (0000 1010); 10
System.out.println(3^10);//3^10 : (0000 0011) ^ (0000 1010) = (0000 1001); 9
System.out.println(~2);//~2:按位取反
/*
~    00000000 00000000 00000000 00000010
=    11111111 11111111 11111111 11111101(补码)
     10000000000000000000000000000000011(原码)-3   
*/
System.out.println(4>>2);//0000 0100->0000 0001; 1
System.out.println((-4)>>2);// -1;原码=补码取反+1
/*
-4
原码    10000000 00000000 00000000 00000100
 -1     10000000 00000000 00000000 00000011
取反    11111111 11111111 11111111 11111100(补码)
>>2     11111111 11111111 11111111 11111111
原码    10000000 00000000 00000000 00000001(取反加一)
*/
System.out.println(4<<2);//0000 0100->0001 0000;16
System.out.println((-4)<<2);
/*
-4
补码:11111111 11111111 11111111 11111100
<< 2:11111111 11111111 11111111 11110000
原码:10000000 00000000 00000000 00010000 (-16)
*/
System.out.println((-4)>>>2);
/*
-4
补码:11111111 11111111 11111111 11111100
>>>2:00111111 11111111 11111111 11111111
原码:01000000 00000000 00000000 00000001 (2^30+1=1073741823) 
*/
System.out.println(4>>>2);//1

 

 

 

 

 

 

你可能感兴趣的:(位运算,逻辑运算,三目运算,关系运算,自增自减)