品易云推流 关闭
文章详情页
文章 > java基础 > java中的位运算符是什么?是什么?

java中的位运算符是什么?是什么?

java位运算符

头像

小妮浅浅

2021-02-06 18:03:082371浏览 · 0收藏 · 0评论

本教程操作环境:windows7系统、java10版,DELL G3电脑。

1.概念

位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。作用在所有的位上,并且按位运算。

2.类型

  与,如果相对应位都是1,则结果为1,否则为0

|    或,如果相对应位都是 0,则结果为 0,否则为 1

^    异或,如果相对应位值相同,则结果为0,否则为1

  取反,按位取反运算符翻转操作数的每一位,即0变成1,1变成0。

<<   按位左移运算符。左操作数按位左移右操作数指定的位数。

>>   按位右移运算符。左操作数按位右移右操作数指定的位数。

>>>  按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

3.注意事项

位运算是直接对二进制进行运算

在位运算中,操作数必须是整型

位异或运算符的特点:

(1)一个数据对另一个数据位异或两次,该数本身不变。

(2)任何数和自身异或,结果为0

(3)任何数和0异或,结果为本身

(4)<< 左移一位,相当于乘以2: 3 << 2 = 12 --> 322=12

(5)>> 右移一位,相当于除以2: 3 >> 1 = 1 --> 3/2=1

(6)3 >>> 1 = 1 --> 3/2=1

同样的运算,位运算的效率高于算术运算

4.实例

class BitDemo{
public static void main(String[] args){
int a = 12;
//8对应二进制是:00000000 00000000 00000000 00001000
int b = 8;
//左移运算,所有的位数向左侧移动指定的位数,左侧高位直接抛弃,右侧低位补0
//右移运算,所有的位数向右侧移动指定的位数,左侧高位补零,右侧直接抛弃
//00000000 00000000 00000000 00100000---32
//00000000 00000000 00000000 00000010---2
System.out.println(b << 2);
System.out.println(b >> 2);
System.out.println(6 & 3);
System.out.println(6 | 3);
System.out.println(6 ^ 3);
//00000000 00000000 00000000 00000110 &
//00000000 00000000 00000000 00000011 =
//00000000 00000000 00000000 00000010 -->2
 
 
//00000000 00000000 00000000 00000110 |
//00000000 00000000 00000000 00000011 =
//00000000 00000000 00000000 00000111 --> 7
//00000000 00000000 00000000 00000110 ^
//00000000 00000000 00000000 00000011 =
//00000000 00000000 00000000 00000101 --> 5
//下面的算法可以实现a和b的数据转化效果
//对两个操作数连续执行三次异或操作,会改变值的顺序
//a = a ^ b;
//b = a^ b;
//a = a ^b;
//System.out.println(a);
//System.out.println(b);
//最简单的一种形式
//int temp = a;
//a = b;
//b = temp;
//一句话搞定
a =  a + b -(b =a);
System.out.println(a);
System.out.println(b);	
}
}

以上就是关于位运算符在java中的使用,同时在二进制的运算上也是非常好用的。学会的小伙伴可以在实例操作上尝试一下,检验自己的学习成果。更多Java学习指路:Java基础

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图