JavaScript中位運算符是一組對二進制數(shù)字執(zhí)行位運算的操作符。這些運算符包括AND(&)、OR(|)、NOT(~)、XOR(^)、左移(<<)和有符號右移(>>)。下面將介紹這些位運算符的使用方法和示例。
AND(&):當兩個數(shù)字都是1時,結(jié)果為1,否則為0。例如,5 & 3的結(jié)果為1。
console.log(5 & 3); // 輸出 1
OR(|):只要有一個數(shù)字為1時,結(jié)果為1,否則為0。例如,5 | 3的結(jié)果為7。
console.log(5 | 3); // 輸出 7
NOT(~):對數(shù)字的每一位取反,0變成1,1變成0。例如,~5的結(jié)果為-6。
console.log(~5); // 輸出 -6
XOR(^):當兩個數(shù)字不同時,結(jié)果為1,否則為0。例如,5 ^ 3的結(jié)果為6。
console.log(5 ^ 3); // 輸出 6
左移(<<):將數(shù)字的二進制表示向左移位,左移1位相當于乘2,左移n位相當于乘2的n次方。例如,5<<1的結(jié)果為10,5<<2的結(jié)果為20。
console.log(5 << 1); // 輸出 10
有符號右移(>>):將數(shù)字的二進制表示向右移位,右移1位相當于除以2,右移n位相當于除以2的n次方,但符號位不變。例如,-5>>1的結(jié)果為-3,-5>>2的結(jié)果為-2。
console.log(-5 >> 1); // 輸出 -3
位運算符可以用于加密和解密操作,或者用于處理二進制位掩碼。例如,一個掩碼值為101的位運算可以用于判斷一個二進制數(shù)的第1位和第3位是否為1。
var mask = 5; // 如果二進制數(shù)的第1位和第3位都為1,則返回1,否則返回0 console.log((num & mask) === mask ? 1 : 0); // 輸出 0
總之,位運算符可以用于處理二進制數(shù)字的位操作,包括AND、OR、NOT、XOR、左移和有符號右移操作。這些運算符可以用于加密、解密、位掩碼、數(shù)據(jù)傳輸和其他許多應(yīng)用程序。