位运算符

本文详细介绍了Java中的位运算符,包括&、|和^的基本用法,以及它们在逻辑运算和数字运算中的不同。通过示例代码展示了如何进行位运算,并解释了左移(<<)和右移(>>)运算符的工作原理。位运算符在提高代码执行效率方面的作用也得到了强调。
摘要由CSDN通过智能技术生成

位运算符

位运算符的本质是先把操作数转为二进制,然后运算,结果转为十进制。

  • &:转为二进制后,同一位置的两个 数,一个为0就是0,两个都为1才是1
  • |:转为二进制后,同一位置的两个数,一个为1就是1,两个都为0才是0
  • ^:转为二进制后,同一位置的两个数,相同为0,不同为1
public class Test01 {
    public static void main(String[] args) {
        int a = 10;
        int b = 12;
        System.out.println(a&b);//结果为8
        System.out.println(a|b);//结果为14
        System.out.println(a^b);//结果为6
    }
}

以上三个运算符,当两边的操作数为boolean类型时,当做逻辑运算符使用。当两边的操作数为数字时,当做位运算符使用。

注:一个数据如果对另一个数据异或两次,结果是数据本身。

除了这几种,常见的位运算符还有左移和右移两个运算符,公式为操作数1>>操作数2或操作数1<<操作数2:

  • “>>”:右移运算符,操作数1转为二进制,然后将其向右移动操作数2大小的位数,移除的数据舍弃,保留的数据转为十进制
  • “<<”:左移运算符,操作数1转为二进制,然后将其向左移动操作数2大小的位数,空置的位置补上0,然后将数据转为十进制
public class Test02 {
    public static void main(String[] args) {
        int a = 10;
        int b = a>>2;
        int c = a<<2;
        System.out.println(b);//结果为2
        System.out.println(c);//结果为40
    }
}

规律:如果语法为a>>b或a<<b,
a > > b 相 当 于 a / 2 b , a < < b 相 当 于 a ∗ 2 b a>>b 相当于 a/2^b, a<<b 相当于 a*2^b a>>ba/2ba<<ba2b
位运算符的执行效率比普通乘除高,因此在源码中会经常见到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值