共計 606 個字符,預計需要花費 2 分鐘才能閱讀完成。
Java 中的移位運算有三種形式:左移運算(<>)和無符號右移運算(>>>)。
- 左移運算(<<):將一個數的所有位向左移動指定的位數,右邊空出的位補 0。例如:2 << 1 得到 4,即 2 的二進制表示為 10,左移 1 位后變為 100,即 4 的二進制表示。
- 右移運算(>>):將一個數的所有位向右移動指定的位數,左邊空出的位根據原來的最高位填補。如果原來是正數,則左邊用 0 填補,如果原來是負數,則左邊用 1 填補。例如:-2 >> 1 得到 -1,即 - 2 的二進制表示為 11111111111111111111111111111110,右移 1 位后變為 11111111111111111111111111111111,即 - 1 的二進制表示。
- 無符號右移運算(>>>):將一個數的所有位向右移動指定的位數,左邊空出的位補 0。無符號右移運算與右移運算不同的是,無符號右移運算不考慮符號位,將符號位當作普通位處理。例如:-2 >>> 1 得到 2147483647,即 - 2 的二進制表示為 11111111111111111111111111111110,無符號右移 1 位后變為 01111111111111111111111111111111,即 2147483647 的二進制表示。
需要注意的是,移位運算只能用于整數類型(byte、short、int 和 long),不能用于浮點數類型。此外,移位位數必須是非負數且小于整數的位數,否則會出現異常。
丸趣 TV 網 – 提供最優質的資源集合!
正文完