什么是按位运算?
我正在研究《 Beginning Android Games》 这本书。我注意到的一件事是:
int action = event.getAction() & MotionEvent.ACTION_MASK;int pointerIndex = (event.getAction() & MotionEvent.ACTION_POINTER_ID_MASK)
>> MotionEvent.ACTION_POINTER_ID_SHIFT;
这是我第一次看到这样的变量,所以我不知道它的作用。我在Java中运行代码并创建了一些示例。
如果我运行此代码:
int i = 10 >> 500;System.out.print("Answer " + i);
答案将是0?这是为什么?
如果我运行此代码:
int i = 10 & 500;System.out.print("Answer " + i);
起初,我认为这是价值的串联,因此我假设i = 10500,但事实并非如此。答案是一样的。还是0?有人知道这里发生了什么吗?
回答:
&是按位运算符,而&&是条件运算符。您正在使用按位运算符。
AND运算符指定必须对信号A和B都进行充电才能对结果进行充电。因此,对字节10和6进行“与”运算将得出2,如下所示:
a = 0000 1010 (10)b = 0000 0110 (6)
---- ----
r = 0000 0010 (2) // a&b
有关更多示例,请参见此处:
~ Unary bitwise complement<< Signed left shift
>> Signed right shift
>>> Unsigned right shift
& Bitwise AND
^ Bitwise exclusive OR
| Bitwise inclusive OR
以上是 什么是按位运算? 的全部内容, 来源链接: utcz.com/qa/415718.html