Java中的移位运算符用于对二进制数进行左移或右移操作。
左移运算符(<<)将操作数的所有位向左移动指定数量的位置。例如,表达式10 << 2将二进制数10(即1010)向左移动2位,得到二进制数101000(即40)。
右移运算符(>>)将操作数的所有位向右移动指定数量的位置。如果操作数是正数,则在移位过程中,最左边的位将用0填充;如果操作数是负数,则在移位过程中,最左边的位将用1填充。例如,表达式-10 >> 2将二进制数-10(即11111111111111111111111111110110)向右移动2位,得到二进制数11111111111111111111111111111101(即-3)。
无符号右移运算符(>>>)将操作数的所有位向右移动指定数量的位置,无论操作数是正数还是负数,最左边的位都将用0填充。例如,表达式-10 >>> 2将二进制数-10(即11111111111111111111111111110110)向右移动2位,得到二进制数00111111111111111111111111111101(即1073741821)。
移位运算符的计算方法是将操作数转换为二进制数,然后根据规则进行位移操作,并将结果转换回十进制数。