我正在执行以下语句。
选择10&〜3。这使输出为8选择10&〜5。这使输出为10选择10&〜2。这使输出为8
任何人都可以解释此背后的逻辑吗?
这是位操作,〜是逆操作。
3 is the same as 0011 in binary, and inverse of that is 1100
2 is the same as 0010 in binary, and inverse of that is 1101
5 is the same as 0101 in binary, and inverse of that is 1010
10 is the same as 1010 in binary.
10 & ~3 => 1010 & 1100 = 1000 => 8
10 & ~5 => 1010 & 1010 = 1010 => 10
10 & ~2 => 1010 & 1101 = 1000 => 8
钻头适用于
您也可以在十进制中思考,但是您也必须以二进制的心态(序列1、2、4、8、16、32、64、128 ...(。10由" 8 | 2"和3组成,由" 1 | 2"组成。倒数为3仅是" 1 | 2"。10和3之间的常见部分是2,因此您将拥有10个不在3中的所有零件,因此给了我们8。