java位运算的应用场景举例[通俗易懂]

java位运算的应用场景举例[通俗易懂]java位运算符介绍Java位运算符是对操作数的二进制位进行运算,操作数和计算结果都是整型。操作符如下:&与:两个二进制位只要有一个为0那么结果就为0,否则结果为1。|或:两个二进制位只要有一个为1那么结果就为1,否则结果为0。^异或:任何相同二进制位进行^运算,结果是0;不相同二进制位^运算结果是1。~取反:0变1,1变0用于奇偶校验位运算是直接操作二进制位,效率较高,一些算法会采用位运算。奇偶判断是判断一个是奇数还是偶数,如何使用位运算实现呢?使用与(&amp

大家好,欢迎来到IT知识分享网。

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://yundeesoft.com/24348.html

(0)
上一篇 2023-08-24 19:00
下一篇 2023-08-24 20:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信