gpt4 book ai didi

java - 什么是按位运算?

转载 作者:行者123 更新时间:2023-12-02 03:01:34 25 4
gpt4 key购买 nike

我正在学习《Beginning Android Games》这本书。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 进行 AND 运算得到 2,如下所示:

a = 0000 1010 (10)

b = 0000 0110 (6)
---- ----
r = 0000 0010 (2) // a&b

参见here更多示例:

按位和移位运算符

~       Unary bitwise complement
<< Signed left shift
>> Signed right shift
>>> Unsigned right shift
& Bitwise AND
^ Bitwise exclusive OR
| Bitwise inclusive OR

关于java - 什么是按位运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57049432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com