java位运算符介绍

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

java中的位运算操作(java位运算的应用场景举例)(1)

&与:两个二进制位只要有一个为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基础知识

"每天60分自学java到大牛系列课程 "

,