運算符 | 描述 | 例子 | 相似於 | 結果 | 十進制 | |
---|---|---|---|---|---|---|
& | AND,按位與處理兩個長度相同的二進制數,兩個相應的二進位都爲 1,該位的結果值才爲 1,不然爲 0。 | x = 5 & 1 | 0101 & 0001 | 0001 | 0001 | 1 |
| | OR,按位或處理兩個長度相同的二進制數,兩個相應的二進位中只要有一個爲 1,該位的結果值爲 1。 | x = 5 | 1 | 0101 | 0001 | 0101 | 5 | |
~ | 取反,取反是一元運算符,對一個二進制數的每一位執行邏輯反操做。使數字 1 成爲 0,0 成爲 1。 | x = ~ 5 | ~0101 | 1010 | -6 | |
^ | 異或,按位異或運算,對等長二進制模式按位或二進制數的每一位執行邏輯異按位或操做。操做的結果是若是某位不一樣則該位爲 1,不然該位爲 0。 | x = 5 ^ 1 | 0101 ^ 0001 | 0100 | 4 | |
<< | 左移,把 << 左邊的運算數的各二進位所有左移若干位,由 << 右邊的數指定移動的位數,高位丟棄,低位補 0。 | x = 5 << 1 | 0101 << 1 | 1010 | 10 | |
>> | 右移,把 >> 左邊的運算數的各二進位所有右移若干位,>> 右邊的數指定移動的位數。 | x = 5 >> 1 | 0101 >> 1 | 0010 | 2 | |
>>> | 無符號右移,與有符號右移位相似,除了左邊一概使用0 補位。 | x = 2 >>> 1 | 0010 >>> 1 | 0001 | 1 |
var a:number = 2; // 二進制 10 var b:number = 3; // 二進制 11 var result; result = (a & b); console.log("(a & b) => ",result) result = (a | b); console.log("(a | b) => ",result) result = (a ^ b); console.log("(a ^ b) => ",result); result = (~b); console.log("(~b) => ",result); result = (a << b); console.log("(a << b) => ",result); result = (a >> b); console.log("(a >> b) => ",result); result = (a >>> 1); console.log("(a >>> 1) => ",result);
使用 tsc 命令編譯以上代碼獲得以下 JavaScript 代碼javascript
var a = 2; // 二進制 10 var b = 3; // 二進制 11 var result; result = (a & b); console.log("(a & b) => ", result); result = (a | b); console.log("(a | b) => ", result); result = (a ^ b); console.log("(a ^ b) => ", result); result = (~b); console.log("(~b) => ", result); result = (a << b); console.log("(a << b) => ", result); result = (a >> b); console.log("(a >> b) => ", result); result = (a >>> 1); console.log("(a >>> 1) => ", result);