位运算

Java位运算是针对于整型(byte、char、short、int、long)数据类型的二进制进行的移位操作。
一. 右移
右移1位相当于原数字除以2运算

        int a = 20;
        int num = a>>1;
        System.out.println("num="+num);

运行结果:
在这里插入图片描述
运算过程:
①把十进制20转化成二进制数10100
②10100右移1位1010
③再把二进制1010转化为二进制数得10

二.左移
左移1位相当于原数字乘2运算


        int a = 5;
        int num = a<<1;
        System.out.println("num="+num);

运行结果:
在这里插入图片描述
运算过程:
①把十进制5转化成二进制数101
②101左移1位1010
③再把二进制1010转化为二进制数得10

三.& 按位与


        int a = 10;
        int num = a&3;
        System.out.println("num="+num);

运算结果:
在这里插入图片描述

运算过程:
①把十进制10转化成二进制数1010,十进制数3转化为二进制数0011
②计算方法 按位与运算,两个当且仅当都为1的时候结果才为1,即1&11,1&00&10&00

1010
0011
---------------------------
0010
③再把二进制0010转化为二进制数得2

四.& 按位或


        int a = 10;
        int num = a|3;
        System.out.println("num="+num);

运算结果:
在这里插入图片描述
运算过程:
①把十进制10转化成二进制数1010,十进制数3转化为二进制数0011
②计算方法 按位或运算,有1为1,无1为0,即1|11,1|01 0|11 0|00

1010
0011
---------------------------
1011
③再把二进制1011转化为二进制数得11

五.异或^


        int a = 10;
        int num = a^3;
        System.out.println("num="+num);

运行结果:
在这里插入图片描述
运算过程:
①把十进制10转化成二进制数1010,十进制数3转化为二进制数0011
②计算方法 异或运算,
0异或任何数,其结果=任何数 0^1=1 0 ^ 0 =0
1异或任何数,其结果=任何数取反 1 ^0 = 1 1 ^1 = 0
任何数异或自己,等于把自己置0 x ^ x = 0

1010
0011
---------------------------
1001
③再把二进制1001转化为二进制数得9

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值