2、操作符详解

Opetators (操作符)

一、赋值运算符

  • “=” 执行顺序是从右往左

二、算术运算符

  • “+”、“-”、“*”、“/”、“%”、“++”、“–”

    • ++a,–a:前缀式,先加减后赋值

    • a++,a–:后缀式,先赋值后加减

三、关系运算符(比较运算符)

  • “==”、“>”、“>=”、“<”、“<=”、“!=”

四、逻辑运算符

  • “|”、“||” 逻辑或:一个为true则结果为true

    • “|”:两个都要运算
    • “||” 又称短路运算符:前面为true则后面可不运算;前面为false则后面要运算
  • “&”、“&&” 逻辑与:两个都为true则结果为true

    • “&”:两个都要运算
    • “&&” 又称短路运算符:前面为false则后面可不运算;前面为true则后面要运算
  • “!” 逻辑非:取反操作,true变false,false变true

  • “^” 逻辑异或:两个逻辑值不同则为true,相同则为false

五、位运算符

  • “>>”:对于正数,向右移位时,高位补0,低位挤掉;对于负数,向右一位时,高位补1,低位挤掉

  • “<<”:不论正负,向左移位时,都是高位挤掉,低位补0

    • 巧用:x<<n 看作 x*(2n),如5<<1就是5*(21)=10
  • ">>>"无符号右移:向右移位时,无论正负,都是高位补0,低位挤掉

  • “>>”,">>>","<<": 移动的运算数是byte和short类型时,将会自动类型提升为int

  • “|” 按位或:有一个为1则结果为1,例如:0101 | 0111 得到 0111

  • “&” 按位与:两个都为1则结果为1,例如:0101 & 0111 得到 0101

  • “^” 按位异或:两个二进制位不同则为1,相同则为0,例如:0101 ^ 0111 得到 0010

    • 巧用:r=rs;s=sr;r=r^s; 可交换r与s变量的值(但对浮点数不起作用)
  • “~” 按位取反:0变1,1变0,包括符号位也会取反

    • int x = ~y; "~"为单目运算符

六、特殊赋值运算符

  • 与算术运算符有关的

    • a+=b; 即为a=a+b;
    • a-=b;
    • a*=b;
    • a/=b;
    • a%=b;
  • 与位运算中移位有关的

    • a>>=b; 即为a=a>>b;
    • a>>>=b; 即为a=a>>>b;
    • a<<=b; 即为a=a<<b;
  • 与其他位运算有关的

    • a|=b;
    • a&=b;
    • a^=b;
    • 注意没有a~=b;

七、三目运算符

  • 布尔表达式 ? first : second

    • 布尔表达式返回结果为true则取first,否则取second
    • ? ( ? : ) : ( ? : ) 可以嵌套使用
  • 如果期望通过一个变量接受三目运算符结果,则此变量必须类型与 first 和 second 两个值的类型兼容

    • 例:int a = b>c?b:c; 若b为short类型,c为char类型,正确

八、优先级

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YrZfBE8X-1605196649157)(运算符优先级.png)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值