Java各种运算符号的含义及区别汇总

本文详细介绍了编程中常见的位运算符,包括左移(<<)、右移(>>)、无符号右移(>>>)、按位与(&)、按位或(|)、按位异或(^)以及非(!)运算。同时,阐述了它们在数字和布尔逻辑中的应用,以及与运算符(&&)和或运算符(||)的区别,包括运算短路特性。通过实例解析,帮助读者掌握这些基本概念。
摘要由CSDN通过智能技术生成

一、<< :左移运算符,num << 1,相当于num乘以2

例如:

2 << 1 //4 移了一位2*2

2 << 2 //8 移了两位 2*2*2

2 << 3 //16 移了三位 2*2*2*2

 

二、>> :右移运算符,num >> 1,相当于num除以2

例如:

16 >> 1 //8 移了一位 16/2

16 >> 2 //4 移了两位 16/2/2

16 >> 3 //2 移了三位 16/2/2/2

 

三、>>> :无符号右移,忽略符号位,高位都以0补齐,无符号右移运算符>>> 只是对32位和64位的值有意义

例如:

1 >>> 1 //0001 → 0000 等于0

2 >>> 1 //0010 → 0001 等于1

3 >>> 1 //0011 → 0001 等于1

4 >>> 1 //0100 → 0010 等于2

4 >>> 2 //0100 → 0001 等于1

 

四、& :与运算,符号两边都为true,结果才是true,否则为false;对于数字,可将数字转换为2进制形式去理解,采用同位 与 操作即可得出结果。

例如:

true&true=true

true&false=false

false&false=false

2&3=2 即:0010&0011=0010 (从高位到低位,依次做与操作)

 

五、| :或运算,符号两边只要有一个为true,则结果为true,否则为false;对于数字,可将数字转换为2进制形式去理解,采用同位 或 操作即可得出结果。

例如:

true|true=true

true|false=true

false|true=true

false|false=false

2|3=3 即:0010|0011=0011 (从高位到低位,依次做或操作)

 

六、^ :异或运算,相同为0,不同为1;对于数字,可将数字转换为2进制形式去理解,采用同位 异或 操作即可得出结果。

例如:

2^3=1,即0010^0011=0001

true^true=false

false^false=false

true^false=true

5^2=7 即:0101^0010=0111 (从高位到低位,依次做异或操作)

 

七、! :非运算

例如:

!true=false

!false=true

 

八、布尔类型操作符:&=、|=、^=

咋一看不知道啥意思,如果你再看看 += 是不是就明白了呢。

int num = 1;

num = num + 2 等同于 num += 2

同理:

boolean flag = true;

flag = flag & false 等同于 flag &= false

flag = flag | false 等同于 flag |= false

flag = flag ^ false 等同于 flag ^= false

注意:!= 不适用于该情况。

 

九、& 和 &&、| 和 || 各自的区别。

&& 和 || 两个符号存在运算短路的特性,即

&&符号左边的表达式结果为false,则不会进行符号右边的运算;

||符号左边的表达式结果为true,则不会进行右边的运算。

而& 和 | 两个符号都会运算完两边的表达式,才能得出结果。

例如:

(1+1==2) & (1+2==3) 两边都运算得出结果:true

(1+1==3) && (1+2==3) 发生短路,不运算右边直接返回结果:false

(1+1==2) | (1+2==3) 两边都运算得出结果:true

(1+1=2) || (1+2==4) 发生短路,不运算右边直接返回结果:true

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值