在 JavaScript 中,移位運算符用于對二進制數字進行位移操作。它可以將數字的二進制表示向左或向右移動指定的位數。JavaScript 提供了以下幾種移位運算符:
1. 左移運算符(`<<`):
- 左移運算符將一個數字的二進制表示向左移動指定的位數,右側空出的位用零填充。
- 左移操作的結果等于將數字乘以 2 的移動位數次方。
- 示例:
let num = 5; // 二進制表示為 00000101
let result = num << 2; // 向左移動兩位
console.log(result); // 輸出:20,二進制表示為 00010100
2. 右移運算符(`>>`):
- 右移運算符將一個數字的二進制表示向右移動指定的位數,左側空出的位用數字的符號位填充(正數用 0 填充,負數用 1 填充)。
- 右移操作的結果等于將數字除以 2 的移動位數次方并向下取整。
- 示例:
let num = 20; // 二進制表示為 00010100
let result = num >> 2; // 向右移動兩位
console.log(result); // 輸出:5,二進制表示為 00000101
3. 無符號右移運算符(`>>>`):
- 無符號右移運算符將一個數字的二進制表示向右移動指定的位數,左側空出的位總是用零填充。
- 無符號右移操作的結果等于將數字除以 2 的移動位數次方并向下取整。
- 示例:
let num = -5; // 二進制表示為 11111111111111111111111111111011
let result = num >>> 2; // 無符號右移兩位
console.log(result); // 輸出:1073741822,二進制表示為 00111111111111111111111111111110
需要注意的是,移位運算符只適用于處理 32 位有符號整數。如果操作數不是 32 位有符號整數,JavaScript 引擎會自動將其轉換為 32 位有符號整數進行移位。
另外,移位運算符會將數字轉換為 32 位二進制表示,因此負數的移位可能會導致意外的結果。
總結起來,移位運算符用于對二進制數字進行位移操作。可以使用左移運算符(`<<`)進行向左移位,使用右移運算符(`>>`)進行向右移位,使用無符號右移運算符(`>>>`)進行無符號右移位。根據具體需求選擇合適的移位運算符進行操作。