Java常见运算符整理

转载:http://blog.csdn.net/pistolove/article/details/44724267

算术运算符

  (1)一元运算符: 
    正(+)、负(-)、加1(++)和减1(--)4个。
    加1、减1运算符只允许用于数值类型的变量,不允许用于表达式中。加1、减1运算符既可放在变量之前(如++i),也可放在变量之后(如i++),两者的差别是:如果放在变量之前(如++i),则变量值先加1或减1,然后进行其他相应的操作(主要是赋值操作);如果放在变量之后(如i++),则先进行其他相应的操作,然后再进行变量值加1或减1。 
    例如: 
    int i=6,j,k,m,n;
    j = +i;    //取原值,即j=6
    k = -i;    //取负值,即k=-6
    m = i++;    //先m=i,再i=i+1,即m=6,i=7
    m = ++i;    //先i=i+1,再m=i,即i=7,m=7
    n = j--;    //先n=j,再j=j-1,即n=6,j=5
    n = --j;    //先j=j-1,再n=j,即j=5,n=5
    在书写时还要注意的是:一元运算符与其前后的操作数之间不允许有空格,否则编译时会出错。二元运算符用的较少暂不讨论。

关系运算符

关系运算符用于比较两个数值之间的大小,其运算结果为一个逻辑类型的数值。关系运算符有六个:等于(==)、不等于(!=)、大于(>)、大于等于(>=)、小于(<)、小于等于(<=)。 由于比较简单,这里也不讨论了。

逻辑运算符

 逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。逻辑运算符有:逻辑与(&&)、逻辑或(||)、逻辑非(!)、逻辑异或(^)、逻辑与(&)、逻辑或(|)。
[java]  view plain  copy
  1. /** 
  2.  *  
  3.  * @author liqq 
  4.  */  
  5. @Test  
  6. public void testLogic() {  
  7.     // && 逻辑与 (短路) 对于a&&b 当a为false时,不需要判断b是否为false  
  8.     System.err.println(false && true); // false  
  9.     System.err.println(false && false); // false  
  10.     System.err.println(true && true); // true  
  11.     System.err.println();  
  12.   
  13.     // || 逻辑或(短路) 对于a||b 当b为true时,不需要判断b是否为true  
  14.     System.err.println(false || true); // true  
  15.     System.err.println(true || true); // true  
  16.     System.err.println(false || false); // false  
  17.     System.err.println();  
  18.   
  19.     // !逻辑非  
  20.     System.err.println(!true); // false  
  21.     System.err.println(!false); // true  
  22.     System.err.println();  
  23.   
  24.     // ^ 逻辑异或 (相同为false,不同为true)  
  25.     System.err.println(false ^ true); // true  
  26.     System.err.println(true ^ true); // false  
  27.     System.err.println(false ^ false); // false  
  28.     System.err.println();  
  29.   
  30.     // & 逻辑与(不短路) 对于a&b 当a为false时,仍需要判断b是否为false  
  31.     System.err.println(false & true); // false  
  32.     System.err.println(true & true); // true  
  33.     System.err.println(false & false); // false  
  34.     System.err.println();  
  35.   
  36.     // | 逻辑或(不短路) 对于a|b 当a为true时,仍然需要判断b是否为true  
  37.     System.err.println(false | true); // true  
  38.     System.err.println(true & true); // true  
  39.     System.err.println(false & false); // false  
  40.     System.err.println();  
  41. }  

位运算符

    位运算是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。 
    位运算符共有7个,分别是:位与(&)、位或(|)、位非(~)、位异或(^)、右移(>>)、左移(<<)、0填充的右移(>>>)。 
[java]  view plain  copy
  1. /** 
  2.  * @author liqq 
  3.  */  
  4. @Test  
  5. public void testBit() {  
  6.     // 位与(&) 和逻辑与类似  
  7.     System.err.println(1 & 0); // 0  
  8.     System.err.println(1 & 1);// 1  
  9.     System.err.println(0 & 0);// 0  
  10.     System.err.println();  
  11.   
  12.     // 位或(|)和逻辑或类似  
  13.     System.err.println(1 | 0);// 1  
  14.     System.err.println(1 | 1);// 1  
  15.     System.err.println(0 | 0);// 0  
  16.     System.err.println();  
  17.   
  18.     // 位非(~)  
  19.     System.err.println(~0); // -1  
  20.     System.err.println(~1);// -2  
  21.     System.err.println();  
  22.   
  23.     // 位异或(^) 相同为0,不同为1  
  24.     System.err.println(1 ^ 0);// 1  
  25.     System.err.println(1 ^ 1);// 0  
  26.     System.err.println(0 ^ 1);// 1  
  27.     System.err.println();  
  28.   
  29.     // 右移(>>)右移数值变小,每移动一位数值减半  
  30.     System.err.println(2 >> 1);// 1  
  31.     System.err.println(2 >> 2);// 0  
  32.     System.err.println(8 >> 1);// 4  
  33.     System.err.println(8 >> 2);// 2  
  34.     System.err.println();  
  35.   
  36.     // 左移(<<)左移数值变大,每移一位数值增倍  
  37.     System.err.println(2 << 1);// 4  
  38.     System.err.println(2 << 2);// 8  
  39.     System.err.println(8 << 1);// 16  
  40.     System.err.println(8 << 2);// 32  
  41.     System.err.println();  
  42.   
  43.     // 0填充的右移(>>>)无符号,右边空出的位以0填充  
  44.     System.err.println(8>>>2);//2    
  45.     System.err.println(-14 >>> 2); //1073741820  
  46.     /*(即二进制的 11111111 11111111 11111111 11110010), 
  47.     向右移两位后等于 1073741820 (即二进制的 00111111 11111111 11111111 11111100)*/  
  48.     System.err.println();  
  49. }  

猜你喜欢

转载自blog.csdn.net/qq_34893326/article/details/79215539
今日推荐