Java之运算符

java之运算符

1.1 运算符的优先级

  • 数学运算、字符串连接运算。
    % 取余 判断是否能整除,要看余数是否为0。
    == 比较是否相等。
    != 比较是否不相等。
    && 逻辑与:左侧是真,并且右侧是真,结果才是真,只要有假结果就是假。也称短路与左侧是假,右侧被忽略不执行。
    || 逻辑或:左侧是真,或者右侧是真,结果都是真。两边都是假,结果才是假。也称短路或左侧是真,右侧被忽略不执行。
    ! 非:非真是假,非假是真。可以做相反的条件判断,如果“非a”是真,即判断a是假。例如:
    if(!a) {
    }
    & 位与:两位都是1,结果才是1。
    | 位或:有1,结果就是1。
    ^ 异或:不同是1。
    ~ 求反:1变0,0变1。
    (>>) 带符号右移位:符号位是0,补0,符号位是1,补1。
    (>>>)不带符号右移位:不管符号位是0还是1,都补0。
    (<<) 左移位:与右移位逻辑一样。
    (++ --)自增、自减。
    (?:)三项运算符:1 ? 2 : 3判断第1项的真假、真运算2 假,运算3。
    = 赋值运算。
    (+= 、&= 、>>=)复合的赋值运算符:例如:a += 3; a= a+3;
    会自动转型:例如:byte a=3;a = (byte) (a+3);
    a += 3;
    a += 3.14;
    ():转型运算符。
    **运算符的优先级:**不用记优先级高低,用时加括号加括号加括号。
    位运算:
    移位运算,不对原值修改,而是新分配内存空间,来保存移动的结果。
    00000000000000000000000010111011 >>2 带符号右移2位
    00000000000000000000000000101110

10000000000000000000000010111011 >>2
11100000000000000000000000101110

00000000000000000000000010111011 >>>2 无符号右移3位
00000000000000000000000000101110

10000000000000000000000010111011 >>>2
00100000000000000000000000101110

10000000000000000000000010111011 <<2
00000000000000000000001011101100

00000000000000000000000010111011
00000000000000000000000001100101 & 两位都是1结果才是1
00000000000000000000000000100001

00000000000000000000000010111011
00000000000000000000000001100101 | 有1就是1
00000000000000000000000011111111

00000000000000000000000010111011
00000000000000000000000001100101 ^ 不同是1
00000000000000000000000011011110
00000000000000000000000010111011 ~ 取反 1变0 、0变1
11111111111111111111111101000100
左移1位,可以作为*2运算。
右移1位,可以作为/2运算。
~求反
整数正负补码
int a = …
~a+1 == -a

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值