按位与会和参与运算的数字每一位按照二进制相与运算
1&1=0,1&0=0,0&0=0
下面找一组样例来解释
1817城堡问题
在上面的题目中给了一个数字让我们求它是由
1二进制->(1),2(10),4(100),8(1000)
哪些数字组成,如果去遍历太麻烦了,所以我们可以用&运算来解决
来看样例
11 6 11 6 3 10 6
7 9 6 13 5 15 5
1 10 12 7 13 7 5
13 11 10 8 10 12 13
**看到第一个数字11,他的二进制是1011
1 0 1 1 & 1=1
1 0 1 1 & 10=10(从右往左看11&10=10)
1 0 1 1& 100=000(011&100=0)
1 0 1 1& 1000 = 1000
所以11=1+2+8**
是不是节省了冗杂的代码