Java的位运算符主要有4个:与(&),或(|),异或(^),非(~),除了非(~),左移(<<),右移(>>)运算符是一元运算符,其他都是二元运算符。

Java 定义的位运算是对整数类型的位进行操作,包括 long,int,short,char 和 byte。

运算符

名称

说明

示例

&


按位进行与运算(AND)

4&7=4

 


按位进行或运算(OR)

4|7=7

^

异或

按位进行异或运算(XOR)

4^7=3

~


按位进行取反运算(NOT)

~4=-5

 

 

 

 

 

 

1.位与运算符(&)

位与运算符(&):参与运算的数字,低位对齐,高位不足的补零,如果对应的二进制位同时为 1,那么计算结果才为 1,否则为 0。因此,任何数与 0 进行按位与运算,其结果都为 0。

示例:

4&7

如下运算过程:

java 高低位算法 java位或_java 高低位算法

 

 

 2.位或运算符(|)

位或运算符(|):参与运算的数字,低位对齐,高位不足的补零。如果对应的二进制位只要有一个为 1,那么结果就为 1;如果对应的二进制位都为 0,结果才为 0。

示例:

4|7

运算过程:

java 高低位算法 java位或_与运算_02

 

 

 

3.位异或运算符(^)

位异或运算符(^),参与运算的数字,低位对齐,高位不足的补零,如果对应的二进制位相同(同时为 0 或同时为 1)时,结果为 0;如果对应的二进制位不相同,结果则为 1。

示例:

4^7

运算过程:

java 高低位算法 java位或_运算符_03

 

 

 

4.位取反运算符(~

位取反运算符(~):只对一个操作数进行运算,将操作数二进制中的 1 改为 0,0 改为 1。

位取反运算符单独一个章节介绍,涉及到计算机对正、负数存储方式的不同。

 

5.位左移运算符<<

位左移运算符:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。

示例:

4<<2

运算过程:

java 高低位算法 java位或_与运算_04

 

 

6.位右移运算符>>

位右移运算符:按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补零。

示例:

4<<2

运算过程:

java 高低位算法 java位或_与运算_05