Java常用按位运算符

首先,解释下什么是按位运算。按位运算是指先将运算的操作数先分解成二进制位,再根据二进制位进行运算。

我们都知道,计算机只能识别二进制数1和0。因此通常来说,按位运算比普通运算效率快很多。

Java提供的常用按位运算符:

1、按位与运算符(&):

1 & 1 = 1; 1 & 0 = 0; 0 & 1 = 0; 0 & 0 = 0;即只有当参与运算的两个对应二进制位都为1的情况下结果位才为1,否则都为0,类似于逻辑与运算符&&。

2、按位或运算符(|):

1 | 1 = 1; 1 | 0 = 1; 0 | 1 = 1; 0 | 0 = 0;即只有当参与运算的两个对应二进制位都为0的情况下结果位才为0,否则都为1,类似于逻辑或运算符||。

3、按位异或运算符(^):

1 ^ 1 = 0; 1 ^ 0 = 1; 0 ^ 1 = 1; 0 ^ 0 = 0;即只有当参与运算的两个对应二进制位为异(值不同)的情况下结果位才为1,否则为0。

4、按位取反运算符(~):

~1 = 0; ~0 = 1;这是个一元运算符,按二进制位进行“取反”运算。

5、按位左移运算符(<<):

表达式:a << n

<1>a为操作数,n为左移的位数。

<2>将a的各个二进制位左移n位,相当于丢弃a中二进制位的前n位,并向a中二进制位向后补n位。

例如:2 << 2;

2的二进制表示形式为:00000010(只保留8位,前面为0的二进制位已省略);

2左移2位后为:00001000(只保留8位,前面为0的二进制位已省略);

00001000就是2左移2位后的二进制表示结果,用十进制表示为8,即2的3次方。

<3>按位左移的规律总结:

只要操作数a是2的次幂的结果,则a << n 等效于 a  *  2的n次幂;例如:2 << 2  = (2 * 2的二次方) =  8

6、按位右移运算符(>>):

与按位左移运算符相反。

7、按位符合运算符:

a &= b 等效于a = a & b;

a |= b 等效于a = a | b;

a ^= b 等效于a = a ^ b;

a <<= b 等效于a = a << b;

a >>= b 等效于a = a >> b;

这些用法类似于java中的“+=”、“-=”、“*=”、“/=”等复合运算符。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值