JAVA位运算的知识点总结
什么是位运算
在计算机中,数据都是以二进制表示的。位运算就是直接对二进制的位进行操作的运算,包括位与、位或、位异或以及位移动等操作。
位运算符号
位运算符号包括:
- 按位与:&
- 按位或:|
- 按位异或:^
- 左移运算:<<
- 右移运算:>>
- 无符号右移运算:>>>
下面对每种符号进行详细讲解。
按位与
按位与运算符是 "&",当两个数进行按位与运算时,只有两个数对应的二进位都为1时,才返回1,否则返回0。示例代码如下:
int a = 5 & 3;
System.out.println(a);
运行结果为:1。因为5和3的二进制分别为101和011,对应位相与得到001,即1。
按位或
按位或运算符是 "|",当两个数进行按位或运算时,只要两个数对应的二进位有一个为1,就返回1,否则返回0。示例代码如下:
int a = 5 | 3;
System.out.println(a);
运行结果为:7。因为5和3的二进制分别为101和011,对应位相或得到111,即7。
按位异或
按位异或运算符是 "^",当两个数进行按位异或运算时,两个数对应的二进位相异时返回1,否则返回0。示例代码如下:
int a = 5 ^ 3;
System.out.println(a);
运行结果为:6。因为5和3的二进制分别为101和011,对应位相异或得到110,即6。
左移运算
左移运算符是 "<<",将一个数的二进制向左移动指定的位数。左移n位则相当于乘以2的n次方。示例代码如下:
int a = 5 << 2;
System.out.println(a);
运行结果为:20。因为5的二进制为101,将其左移两位得到10100,即20。
右移运算
右移运算符是 ">>",将一个数的二进制向右移动指定位数。右移n位则相当于除以2的n次方。示例代码如下:
int a = 10 >> 2;
System.out.println(a);
运行结果为:2。因为10的二进制为1010,将其右移两位得到10,即2。
无符号右移运算
无符号右移运算符是 ">>>",将一个数的二进制向右移动指定位数,移动后高位用0填充。示例代码如下:
int a = -1 >>> 1;
System.out.println(a);
运行结果为:2147483647。因为-1的二进制全为1,将其无符号右移一位得到01111111 11111111 11111111 11111111,即2147483647。
总结
以上就是JAVA位运算的知识点总结,包括按位与、按位或、按位异或、左移运算、右移运算、无符号右移运算的使用方法和示例代码。掌握位运算可以提高程序的效率,同时还有一定的实际应用场景。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA位运算的知识点总结 - Python技术站