什么是按位运算?

我正在研究《 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

回到顶部