任何人都可以解释吗?我对以下结果感到非常困惑。非常感谢!
`i = 2
table[i] = i&1 + table[i>>1] `
`tmp = i&1
table[i] = tmp + table[i>>1]`
答案 0 :(得分:0)
这是由于parens欺骗和&的优先级较低:这是一个工作原理示例:
2& will not happen until 2+ 2 >> 2
In [569]: 2&2 + 2>>2
Out[569]: 0
Here we use the and in parens first, before adding to 2>>2
In [570]: (2&2) + 2>>2
Out[570]: 1
Here's what the operator precedence looks like for the original operation:
In [571]: 2&(2 + 2>>2)
Out[571]: 0