JavaScript 的移位運算符


移位運算就是對二進制進行有規律低移位。移位運算可以設計很多奇妙的效果,在圖形圖像編程中應用廣泛。

“<<”運算符

“<<”運算符執行左移位運算。在移位運算過程中,符號位始終保持不變。如果右側空出位置,則自動填充為 0;超出 32 位的值,則自動丟棄。
把數字 5 向左移動 2 位,則返回值為 20。

console.log(5 << 2); //返回值20

“>>”運算符

“>>”運算符執行有符號右移位運算。與左移運算操作相反,它把 32 位數字中的所有有效位整體右移,再使用符號位的值填充空位。移動過程中超出的值將被丟棄。

把數值 1000 向右移 8 位,則返回值為 3。

console.log(1000 >> 8); //返回值3

把數值 -1000 向右移 8 位,則返回值為 -4。

console.log(-1000 >> 8); //返回值 -4

“>>>”運算符

“>>>”運算符執行五符號右移位運算。它把無符號的 32 位整數所有數位整體右移。對於無符號數或正數右移運算,無符號右移與有符號右移運算的結果是相同的。

下面兩行表達式的返回值是相同的。

console.log(1000 >> 8);  //返回值3
console.log(1000 >> 8);  //返回值3

對於負數來說,無符號右移將使用 0 來填充所有的空位,同時會把負數作為正數來處理,所得結果會非常大所以,使用無符號右移運算符時要特別小心,避免意外錯誤。

console.log(-1000 >> 8);  //返回值 -4
console.log(-1000 >>> 8);  //返回值 16777212

轉載自: http://c.biancheng.net/view/5471.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM