如果我有数字’00001000’和掩码’00101000′,我如何通过二进制操作检查数字中的两个位是否都已设置?数字&如果至少有一位匹配,则mask返回true,但我需要检查所有匹配项.
如何?
解决方法:
只是比较面具:
if (number & mask === mask) {
// all bits are set!
}
&结果的唯一方法当数字设置了所有位时,操作将与掩码的值完全相同. (测试编号可能设置了更多位;如果要检查它是否设置了相同的位并且未设置,那么这是一个简单的相等测试.)