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)。
移位運算符的計算方法是將操作數轉換為二進制數,然后根據規則進行位移操作,并將結果轉換回十進制數。