位掩码(javascript):如何检查所有标志

Bit masking (javascript): how to check ALL flags

如果我有数字“00001000”和掩码“00101000”,我如何通过二进制运算检查数字中的两个位是否都已设置? number & mask return 如果至少一位匹配,则为真,但我需要检查所有匹配。 怎么做?

与面具对比一下:

if ((number & mask) === mask) {
  // all bits are set!
}

& 操作的结果与掩码的值完全相同的唯一方法是当数字设置了所有位时。 (测试编号可能设置了更多位;如果您想检查它是否设置和未设置完全相同的位,那么这是一个简单的相等性测试。)