javascript - 无法理解这个条件

标签 javascript bitwise-operators

我不明白条件((wins[i] & Score) ===wins[i])score 是一个值,wins[i] 是包含整数的数组内的元素。它们的比较就像 bool 值一样。请赐教。

wins = [7, 56, 448, 73, 146, 292, 273, 84];

win = function (score) { //score is an int value
    for (var i = 0; i < wins.length; i += 1) {
        if ((wins[i] & score) === wins[i]) {
            return true;
        }
    }
    return false;
}

我问过周围的人,人们都在谈论按位运算符。有人可以尽可能简单地解释一下这种情况吗?我理解“正常”逻辑运算符。

最佳答案

这些不是逻辑运算符,它们本质上是不同的。您需要了解数字的二进制表示形式。例如,如果 a = 7b = 12,则通过查看两者中均为 1 的位来评估 a & b a b:

  a 00000111
  b 00001100
a&b 00000100

所以7 & 12 = 4。同样,| 是按位而不是逻辑或。

关于javascript - 无法理解这个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18763776/

相关文章:

javascript - 按位求反和按位异或 1 不等价?

javascript - Cordova 应用程序启动 whatsapp

JavaScript 动态 onClick 问题

javascript - PDFTron 中的自由文本工具 focusout()

javascript - Firebug 网络监视器如何工作?

perl - 架构的一元 NOT/Integersize

javascript - 如何用 jQuery 包裹 2 个元素?

C#- |和 & 运算符?

python - 添加 '=' 对 Python 中的位运算符有什么作用? (即 '<<=' 而不是 '<<' )

c++ - C++ 中的 (a&1) 是什么意思?