您的位置 首页 java

java位运算的应用场景举例

java位运算符介绍

Java位运算符是对操作数的二进制位进行运算,操作数和计算结果都是整型。操作符如下:

java位运算的应用场景举例


&与:
两个二进制位只要有一个为0那么结果就为0,否则结果为1。
|或:
两个二进制位只要有一个为1那么结果就为1,否则结果为0。
^异或:
任何相同二进制位进行 ^ 运算,结果是0;不相同二进制位 ^ 运算结果是1。
~取反:
0变1,1变0

用于奇偶校验

位运算是直接操作二进制位,效率较高,一些算法会采用位运算。
奇偶判断是判断一个是奇数还是偶数,如何使用位运算实现呢?
使用与(&)运算可以实现,根据与运算的特点,两个二进制位只要有一个为0那么结果就为0,否则结果为1。
二进制的最低位为1一定是奇数,为0则一定是偶数,我们让该数和1进行与运算,结果为1则是奇数,为0则是偶数。
程序如下:

 /**
 * 位运算应用--奇偶判断
 * @author 攀博课堂(www.pbteach.com)
 *
 */public class OperatorDemo9_1 {
public static void main(String[] args) throws InterruptedException {

int a = 1;
int x = 6;
int y = 7;
//和1与运算,结果为1则为奇数
System.out.println(x & a);
//和1与运算,结果为0则为偶数
System.out.println(y & a);
}
}
  

输出:

 0
1  

用于两个数的交换

在实际的开发中需要交换两个变量的值,这是很常见的需求:

已知两个数:

 int a = 5;
int b = 10;  

尝试编写程序交换a和b的值,即实现:

 a的值为10
b的值为5  

例子:

    /**
     * 位运算应用--奇偶判断
     * @author 攀博课堂(www.pbteach.com)
     *
     */    public class OperatorDemo9_2 {
    public static void main(String[] args) throws InterruptedException {
    
    //======交换两个数方法1:使用中间变量======
    int a = 5;
    int b = 10;
    System.out.println(a);
    System.out.println(b);
    //定义中间变量,将a赋值给中间变量
    int c = a;
    //将b赋值给a
    a = b;
    //将中间变量(a的值)赋值给b
    b = c;
    System.out.println(a);
    System.out.println(b);
    
    //======交换两个数方法2:使用异或运算======
    int m = 5;
    int n = 10;
    //先测试异或运算的特点 
    //一个数对自己异或一次,再异或另一个数,结果为另一个数
    System.out.println(m  ^ m ^ n); //m变成了n,输出10
    System.out.println(n ^  n ^ m ); //n变成了m,输出5
    //下边通过异或交换变量的值
    //下边是m和n没有交换之前的异或,存入m
    m = m ^ n ;
    //下边的赋值语句相当于n=m ^ n ^ n,将m的值赋值给了n
    n = m ^ n ;
    //此时n的值为m,所以m ^ n即m ^ m ^  n ,将n的值赋值给了m
    m = m ^ n ;
    System.out.println(m);
    System.out.println(n);
    }
    }
  

更多 java基础知识

文章来源:智云一二三科技

文章标题:java位运算的应用场景举例

文章地址:https://www.zhihuclub.com/182623.shtml

关于作者: 智云科技

热门文章

网站地图