Java中的移位運算規則如下:
左移運算符(<<):將操作數的所有位向左移動并用0填充右側空位。移動的位數由右側的操作數指定。例如,對于表達式a << b
,將a
的所有位向左移動b
個位置。
右移運算符(>>):將操作數的所有位向右移動。如果操作數是正數,則用0填充左側空位;如果操作數是負數,則用1填充左側空位。移動的位數由右側的操作數指定。例如,對于表達式a >> b
,將a
的所有位向右移動b
個位置。
無符號右移運算符(>>>):將操作數的所有位向右移動。無論操作數是正數還是負數,都用0填充左側空位。移動的位數由右側的操作數指定。例如,對于表達式a >>> b
,將a
的所有位向右移動b
個位置。
需要注意的是,移位運算符對于操作數的位數沒有限制。如果移動的位數超過了操作數的位數,則結果是未定義的。