位运算符

位运算符

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

  • &:转为二进制后,同一位置的两个 数,一个为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
位运算符的执行效率比普通乘除高,因此在源码中会经常见到。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值