ant*_*rek 2 javascript bitwise-operators
我真的|对^在JavaScript 中使用OR 与XOR感到困惑,如下面的简单示例所示;
(function sayHi(n){
if(n < 1) //base case
return;
console.log("Hi!!" | "Hello!!") ;
sayHi(n - 1); //recurse
})(5);
(function sayHi(n){
if(n < 1) //base case
return;
console.log("Hi!!" ^ "Hello!!") ;
sayHi(n - 1); //recurse
})(5);
Run Code Online (Sandbox Code Playgroud)
(function sayHi(n){
if(n < 1) //base case
return;
console.log(2 | 6) ;
sayHi(n - 1); //recurse
})(5);
(function sayHi(n){
if(n < 1) //base case
return;
console.log(2 ^ 6) ;
sayHi(n - 1); //recurse
})(5);
Run Code Online (Sandbox Code Playgroud)
我对何时、如何、为什么、在何处适当使用|vs感到困惑^。
有人可以帮助我理解OR和XOR操作之间的主要区别吗?
我正在阅读MDN web Docs 中的JavaScript文档以更好地理解按位运算的概念,但我正在努力理解它们的显着差异。
我只是想确保我今后继续正确使用这些操作。
非常感谢预期的帮助!
OR 和 XOR 是不同的运算符:
或者:
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1
Run Code Online (Sandbox Code Playgroud)异或
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
Run Code Online (Sandbox Code Playgroud)如果您有两位并将它们与 OR 组合,则结果将为 1,如果这些位之一或两者均为 1。如果您将它们与 XOR(异或)组合,则如果这些位中只有一位为 1,则结果将为 1 (如果两者都不是)。
| 归档时间: |
|
| 查看次数: |
3332 次 |
| 最近记录: |