「Java基础」位运算及应用

本文介绍了Java中的位运算,包括按位与&、按位或|、按位非~、按位异或^、左移运算符<<、右移运算符>>以及无符号右移运算符>>>。通过位运算可以实现奇偶数判断、数值转换、数据位操作等功能,提高代码效率。
摘要由CSDN通过智能技术生成

按位运算

0.介绍

按位运算符 用于对基本数据类型中整型数据进行以单个位(bit) 为单位的运算。

Java中的位运算符包括:

运算符 中文名称 英文名称
& 按位与 Bitwise AND
| 按位或 Bitwise OR
~ 按位非 Bitwise NOT
^ 按位异或 Bitwise XOR
<< 左移运算符 Bitwise left shift
>> 右移运算符 Bitwise right shift
>>> 无符号右移运算符 Biswise unsigned right shift

注意:下面的例子均假设整型数据为8位(即byte类型)

1.按位与&

规则

按位与运算符与逻辑与运算符的行为十分相似,按位与运算符比较两个操作数对应位的值,若均为1则返回1,否则返回0。如下表所示:

A B 结果
0 0 0
0 1 0
1 0 0
1 1 1

例如,对27和31这两个整型数作按位与运算:

  1. 将操作数表示为二进制形式,即:DEC 27 = BIN 00011011DEC 31 = BIN 00011111
  2. 按上表规则对操作数的对应位进行运算得到:BIN 00011011 = DEC 27
  3. 则表达式 27 & 31 的值为 27

应用

按位与运算符的一个应用就是判断一个整数是奇数还是偶数。这是因为当二进制数转化为十进制数时,最右位(rightmost digital,也称the least significant bit)表示十进制的20 = 1。若此位为0,那么该十进制数是若干2的次幂的和,为偶数(even);若此位为1,那么该十进制数是若干2的次幂的和加1,必为奇数(odd)。故只需使用表达式 num & 1 判断最右位的值即可。

Java代码片段如下:

public boolean isOdd(int num) {
   
    if (num & 1 == 1)
        return trueelse
        return false}

与通过求余判断奇偶数的方法相比,此种方法性能较好。

2.按位或|

规则

类似的,按位或运算符与逻辑或运算符行为十分相似,按位或运算符比较两个操作数对应位的值,若均为0则返回0,否则返回1。如下表所示:

A B 结果
0 0</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值