大家好,欢迎来到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