Java位运算符的简介说明

本文详细介绍了Java中的位运算符,包括按位与(&),按位或(|),按位异或(^),按位取反(~),左移(<<),右移(>>)和无符号右移(>>>)。通过实例展示了它们的运算规则,并提供了注意事项,如移位运算符适用于byte, short, char, int, long类型,以及在不同移位操作中的位数处理方式。
摘要由CSDN通过智能技术生成

转自:

Java位运算符的简介说明

下文笔者将讲述java中位运算符,如下所示:

位运算符用于对整型类型(
long,int,short,char,and byte
)进行相关位运算操作,如下所示:
-------------------------------------------
&:按位与,“只有两个都是1,结果才是1”
|:按位或,“只要有一个1,结果就是1”
^:按位异或,“相同的为0,不同的为1”(通常被称之为 无进位相加)
~:按位取反,“1就是0,0就是1”
<<:按位左移,“表示将二进制向左位移,右边填0”
>>:按位右移,“表示将二进制向右位移,左边填符号位”
>>>:无符号右移动,“表示将二进制向右位移,左边填0”

按位与运算

按位与运算符"&"是双目运算符
其功能:对运算的两个数字,按位相与
两个位都相同时,则此位为1
两位不同时,则此位为0
例:

int a = 0b1011;
int b = 0b1010;
int c = a & b;//1010
System.out.println("c is " + c);
----运行以上代码,将输出以下信息---
c is 10

按位或运算

按位或运算符“|”是双目运算符
其功能:对运算的两个数字,按位相或
两个位中有一个位上的为1,则运算结果为1
否则为0

int a = 0b1011;
int b = 0b1010;
int c = a & b;//1011(11)
System.out.println("c is " + c);
----运行以上代码,将输出以下信息---
c is 11

按位异或运算

按位异或运算符“^”是双目运算符
其功能:对运算的两个数字,按位异或
两个位中的值相同时,则返回0
否则为1

int a = 0b1011;
int b = 0b1010;
int c = a ^ b;//0001(1)
System.out.println("c is " + c);
----运行以上代码,将输出以下信息---
c is 1

求反运算

求反运算符"~"是一个单目运算符,具有右结合性
求反运算符的功能:对计算数按位依次求反(此位上1变0,0变1,符号位也会求反)

左移运算

左移运算符“<<”是双目运算符
左移运算符的功能把“<<”:将左边的运算数全部向左移动指定位数,空出的位数补零,高位扔掉
如:

int a = 0b0011;// 3
int c = a << 3;// 11000(24)
System.out.println("c is " + c);
-----运行以上代码---
c is 24

右移运算

右移运算符“>>”是双目运算符
其功能是把“>>”:将左边的运算数的各二进位全部右移若干位
“>>”右边的数指定移动的位数

int a = 0b0011;// 3
int c = a >> 1;// 0001(1)
System.out.println("c is " + c);
-----运行以上代码---
c is 1
位运算注意事项:
  1.移位运算符适用类型有byte、short、char、int、long 
  2.对低于int型的操作数将先自动转换为int型再移位
  3.对于int型整数移位a>>b,系统先将b对32取模,得到的结果才是真正移位的位数,因为超过32位的移动毫无意义
  4.对于long型整数移位时a>>b,则是先将移位位数b对64取模
  5.x>>1的结果和x/2的结果是一样的(n除以2,可以使用n>>1),x<<2和x*4的结果也是一样的,即:一个数左移n位,效果等同于这个数乘以2的n次方,一个数右移n位,就是等于这个数除以2的n次方

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值