其他运算符

阅读:152
1.一元运算符

+=为二元运算符。相当把左侧的值加上右侧的值。

比如:int i = 1; i +=4; 此时i=5;等价于i = i + 4;

一般我们把运算符放在等号的左边,比如+=、*=、%=;

但是,如果左侧类型和右侧类型不同呢,就会把发生自动类型转换。

比如:int i = 6; i +=0.5; 相当于(int)(i + 0.5)。

2.自增自减运算符

++、—,自增或自减。

比如:int i =2; i++; i的值就是3;

自增或自减分为前缀和后缀。

比如:i++;后缀方式。

++i,前缀方式。

他们都是使变量加1或减1。但是在表达式中,区别是,前缀先加1,后缀先使用原来值,再加1。在实际的开发中,建议少用,会让人困惑。我们看一个例子:

public class TypeTest {
    public static void main(String[] args){
        int a = 2;
        int b = 3;

        System.out.println(10 * ++ a);
        System.out.println(10 * b++);
    }
}

结果都是30;第一个输出,会先让a加1为3,然后乘10,结果是30;第二个输出,b是3乘以10,结果为30。

3.关系运算符
  1. 检测相等性:==,比如5==6;结果为false;为不相等。
  2. 检测不相等:!=,比如5!=6;结果为true;因为它们确实不相等。
  3. 还有,大于>、小于<、大于等于>=、小于等于<=。
  4. 逻辑'与',表达式1 && 表达式2,它们有一个为false,结果就为false,都为true结果才为true;如果表达式为false,表达式2就不会再执行了,可以利用此来米面错误。
  5. 逻辑'或',表达式1 || 表达式2,有一个为true,则结果为true;同理,表达式1为true,表达式2就不会执行了。
  6. 三目运算符,条件 ? 表达式1 : 表达式2,这个是很有用的,如果条件成立,结果就执行表达式1,否则执行表达式2。比如 a > b ? a : b;则可以返回a和b中较大的一个值。
4.位运算符

计算整型类型时,可以直接对组成整型的数字各个位进行比较,包括:

与(&)、非(~)、或(|)、异或(^)。

  1. 与(&),两个操作数中位都为1,结果才为1。比如,int x = 129;int y = 128;x&y=128;

    x=129,转为二进制10000001,y=128,转为二进制为10000000,相同的位置都为1,结果才为1,则结果为10000000,即为128。

  2. 非(~),如果位为0,结果是1,如果位为1,结果是0。

  3. 或(|),两个位只要有一个为1,那么结果就是1,否则就为0。

  4. 异或(^),两个操作数的位中,相同则结果为0,不同则结果为1。

 

5.移位运算符

可以对整型进行按照位移动。

运算符含义例子
<<左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0)x<<8
>>"有符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1.x>>9
>>>"无符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负,都在高位补0.x>>>10
6.括号与运算符级别

同级别的运算符,自左往右计算。不同级别,按照级别从高往低计算。运算级别从高到低以此为:运算符按照优先级别的高低排序分别是:自加/减运算符、 算术运算符、比较运算符、逻辑运算符、赋值运算符。如下规律:

1.括号,如 ( ) 和 [ ]

2.一元运算符,如 -、++、- -和 !

3.算术运算符,如 *、/、%、+ 和 -

4.关系运算符,如 >、>=、<、<=、== 和 !=

5.逻辑运算符,如 &、^、|、&&、||

6.条件运算符和赋值运算符,如 ? :、=、*=、/=、+= 和 -=

比如:x && y || z,由于&&比||优先级高,所以相当于(x&&y)||z。


© 版权归知否网(zhifou.net)所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权知否网将依法追究其法律责任。
读后有收获,请作者喝杯咖啡

精彩留言

发表评论
更多精彩内容,请关注微信公众号