如果eventButton只能等于0,1或2,那么按位操作将始终返回0。
由于0,1和2都是2位数,因此在任何方向上将它们按位移位2位将始终使它们变为0:
00 >> 2 = 00 01 >> 2 = 00 10 >> 2 = 00
和 0 & /*any number*/ 总是0
0 & /*any number*/
几乎可以肯定你错了,事件按钮可能有很多不同的值。事实是,eventButton本身并不有趣。我怀疑eventButton实际上是几个不同的值打包在一起。
这是一种称为位掩码的技术。事件按钮在单个int中包含多条信息。在这种情况下,我们对拖动模式感兴趣(通过方法名称判断 extractDragMode )。拖动模式为0,1或2.这只需要两位,这两位是int的第3和第4位。通过将它们向右移动两位,我们将它们放入前两个位置。然后我们用3来将int中的所有其他位归零。我们现在剩下的就是拖动模式位的值。
extractDragMode
基本上你除以4的值 的 eventButton 强> 并且只获得2个较少有意义的位
因此,如果 的 eventButton 强> 保持值为:0,1或2 然后结果只能为零..