JavaScript << 左移運算子

admin發表於2019-04-22

左移運算子由兩個小於號(<<)表示。

它能夠將二進位制數整體向左移動指定的位數。

程式碼例項:

以數字4為例子做一下介紹,它的二進位制表示為:

[JavaScript] 純文字檢視 複製程式碼
100

如果將其左移2位,那麼就變成了:

[JavaScript] 純文字檢視 複製程式碼
10000

結果為16,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
var num = 4;
var newNum = num << 2;
console.log(newNum);

特別說明:在左移的時候,數字的右側多出的空位用0填充。

對於負數也是這樣的,負數在計算機中是用二進位制原碼的補碼錶示。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
var view32 = new Int32Array(1);
view32[0] = -520;
 
var new26=view32[0]<<26;
var new22=view32[0]<<22;
console.log(new26);
console.log(new22);

上面的程式碼解析如下:

[JavaScript] 純文字檢視 複製程式碼
00000000000000000000001000001000//520
//負數是二進位制原碼的補碼
11111111111111111111110111111000//-520

-520二進位制數左移22位,恰好是二進位制數從左邊數第一個0(11111111111111111111110111111000)在最高位(符號位),所以輸出正數。

也就是說左移的時候不會保留符號位。

相關文章