位屏蔽(javascript):如何检查所有标志

如果我有数字’00001000’和掩码’00101000′,我如何通过二进制操作检查数字中的两个位是否都已设置?数字&如果至少有一位匹配,则mask返回true,但我需要检查所有匹配项.
如何?

解决方法:

只是比较面具:

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

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

上一篇:java – 是否可以为~100个常量创建一个位掩码?


下一篇:php – 如何实现论坛权限