我不确定这个声明是什么意思:
int i = x & y;
Run Code Online (Sandbox Code Playgroud)
我运行了这个例子
int x = 1 & 2;
int y = 5;
int sum = x + y;
Run Code Online (Sandbox Code Playgroud)
结果是 5,我不确定&在这种情况下我是否了解运算符的作用
该&运算符是一个按位与。要了解它的作用,请查看位模式。
所以如果1有这个二进制位模式:
0 1
Run Code Online (Sandbox Code Playgroud)
并2有这个二进制位模式:
1 0
Run Code Online (Sandbox Code Playgroud)
您将它们放在一起并查看列:
0 1
1 0
Run Code Online (Sandbox Code Playgroud)
仅保留所有1值为 的列的值1。所以我们有这个结果:
0 0
Run Code Online (Sandbox Code Playgroud)
这是0.
因此,在第一行代码之后,x值为0,0加号5仍然是5。
另一个例子,让我们做这样的表达:1 & 3。我们有这两种二进制位模式:
0 1
1 1
Run Code Online (Sandbox Code Playgroud)
产生这个结果:
0 1
Run Code Online (Sandbox Code Playgroud)
所以我们得到1. 我们也可以这样做2 & 3:
1 0
1 1
Run Code Online (Sandbox Code Playgroud)
要得到这个结果:
1 0
Run Code Online (Sandbox Code Playgroud)
这是2.
按位 AND 有多种用途。其中一个简单的方法是检查偶数与奇数。该表达式x & 1 == 1是检查变量x是否为奇数的快速方法。x & 1 == 0快速检查它是否均匀。
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |