Java位运算符的简介说明

java-教程王 Java教程 发布时间:2021-11-24 05:38:59 阅读数:1111 1 位操作大全 运算符
下文笔者将讲述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次方
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/202111/1830.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者