Java中的运算符

|= 或等

代码如下

public static void main(String[] args) {
   int a = 5; // 0000 0101
   int b = 3; // 0000 0011
   a |= b; // 0000 00111
}

具体规则为:两个二进制对应位为0时该位为0,否则为1。

&= 与等

代码如下

public static void main(String[] args) {
    int a = 5; // 0000 0101
    int b = 3; // 0000 0011
    a &= b; // 0000 0001
}

具体规则为:两个二进制对应位都为1时,结果为1,否则结果为都0。

^= 异或等

代码如下

public static void main(String[] args) {
    int a = 5; // 0000 0101
    int b = 3; // 0000 0011
    a ^= b; // 0000 0110
}

具体规则为:两个二进制对应位相同时,结果为0,否则结果为1。

& 按位与

代码如下

public static void main(String[] args) {
    int a = 5&3; // 0000 0101 & 0000 0011 = 0000 0001 -->1
    int b = 5&7; // 0000 0101 & 0000 0111 = 0000 0101 -->5
}

运算规则为:二个真才为真1&1=1 , 1&0=0 , 0&1=0 , 0&0=0

&&(逻辑与)

运算规则为:&&逻辑与也称为短路逻辑与,先运算&&左边的表达式,一旦为假,后续不管多少表达式,均不再计算,一个为真,再计算右边的表达式,两个为真才为真。

|(按位或)

代码如下

public static void main(String[] args) {
    int a = 5|3; // 0000 0101 & 0000 0011 = 0000 0111 -->7
    int b = 5|7; // 0000 0101 & 0000 0111 = 0000 0111 -->7
}

运算规则为:一个为真即为真,1|0 = 1 , 1|1 = 1 , 0|0 = 0 , 0|1 = 1

||(逻辑或)

运算规则为:一个为真即为真,后续不再计算,一个为假再计算右边的表达式。

^(异或运算符)

运算规则为:1^0 = 1 , 1^1 = 0 , 0^1 = 1 , 0^0 = 0

<<(左移运算符)

代码如下

public static void main(String[] args) {
    int a = 5<<2; // 0000 0101 --> 0001 0100 -->20
}

运算规则为:5的二进制往左挪2位,右边补0

>>(右移运算符)

代码如下

public static void main(String[] args) {
    int a = 5>>2; // 0000 0101 --> 0000 0001 -->1
}

运算规则为:5的二进制往右移2位,正数左边第一位补0,负数补1

~(取反运算符)

运算规则为:取反就是1为0,0为1

>>>(无符号右移运算符)

正数

运算规则为:无符号右移运算符和右移运算符的主要区别在于负数的计算,因为无符号右移是高位补0,移多少位补多少个0。

负数

运算规则为:因为负数在内存中是以补码形式存在的,所有首先根据负数的原码求出负数的补码(符号位不变,其余位按照原码取反加1),然后保证符号位不变,其余位向右移动到X位,在移动的过程中,高位补1.等移位完成以后,然后保持符号位不变,其余按位取反加1,得到移位后所对应数的原码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值