Java中的位移运算符分为逻辑右移和算数右移,它们的使用方法和结果会有一些区别。
逻辑右移是使用“>>”符号进行操作,它将二进制数向右移动指定位数,右边的高位使用0填充。例如:
int a = 16;int b = a >>2;// b的值为4,二进制为0100
算数右移是使用“>>>”符号进行操作,它将二进制数向右移动指定位数,右边的高位使用原来的符号位填充,即正数填0,负数填1。例如:
int a = -16;int b = a >>>2;// b的值为1073741820,二进制为00111111111111111111111111110000
需要注意的是,当进行算数右移时,符号位会变成0,因此负数的绝对值将会增大,可能会产生意想不到的结果。