📜  Java中的按位右移运算符(1)

📅  最后修改于: 2023-12-03 15:02:02.210000             🧑  作者: Mango

Java中的按位右移运算符

在Java语言中,有6种位运算符,其中之一是按位右移运算符。按位右移运算符用符号“>>”表示,它可以将一个数的二进制位向右移动指定的位数,空出来的高位以符号位填充。

基本用法

按位右移运算符可以用于整数类型的数据,比如byte、short、int和long等。其基本语法如下:

int a = 5;
int b = a >> 1; //将a的二进制值向右移动1位,得到2

此时,变量b的值为2。

需要注意的是,按位右移运算符的移动位数必须为正整数。如果移动位数为0或负数,编译器会报错。

按位右移运算符的特点
  1. 按位右移运算符优先级低于算术运算符和关系运算符,但高于赋值运算符。
  2. 按位右移运算符左侧的表达式必须为整数类型。
  3. 按位右移运算符在对数据进行移位时,对于正数符号位不变,空出来的高位以0填充;对于负数符号位不变,空出来的高位以1填充。
  4. 按位右移运算符右侧的移动位数必须为正整数,如果它是负数或0,编译器会报错。
案例演示
public class BitwiseRightShiftDemo {
    public static void main(String[] args) {
        int num = 7;
        System.out.println("num的二进制表示为:" + Integer.toBinaryString(num));
        int result1 = num >> 1;
        System.out.println("num按位右移1位后的结果为:" + result1);
        System.out.println("结果的二进制表示为:" + Integer.toBinaryString(result1));        
        int result2 = num >> 2;
        System.out.println("num按位右移2位后的结果为:" + result2);
        System.out.println("结果的二进制表示为:" + Integer.toBinaryString(result2));
    }
}

输出结果为:

num的二进制表示为:111
num按位右移1位后的结果为:3
结果的二进制表示为:11
num按位右移2位后的结果为:1
结果的二进制表示为:1
总结

通过本文的介绍,我们了解了Java语言中的按位右移运算符并熟悉了它的基本用法。当我们需要对数据进行位移操作,并且需要保留符号位时,可以使用按位右移运算符。