这句话的意思是什么;y在C#中?

这句话的意思是什么;y在C#中?,c#,.net,C#,.net,我不知道这句话是什么意思: int i = x & y; 我运行了这个示例 int x = 1 & 2; int y = 5; int sum = x + y; 结果是5,我不确定我是否知道&运算符在这种情况下的作用该&运算符是一个按位and。要了解它的功能,请查看位模式 因此,如果1具有此二进制位模式: 0 1 1 0 并且2具有以下二进制位模式: 0 1 1 0 将它们放在一起,然后查看以下列: 0 1 1 0 对于所有值均为1的列,仅保留1值。所以我们得到了这

我不知道这句话是什么意思:

int i = x & y;
我运行了这个示例

int x = 1 & 2;
int y = 5;
int sum = x + y;

结果是5,我不确定我是否知道
&
运算符在这种情况下的作用

&
运算符是一个按位and。要了解它的功能,请查看位模式

因此,如果
1
具有此二进制位模式:

0 1
1 0
并且
2
具有以下二进制位模式:

0 1
1 0
将它们放在一起,然后查看以下列:

0 1
1 0
对于所有值均为
1
的列,仅保留
1
值。所以我们得到了这个结果:

0 0 
0 1
1 0
这是
0

因此,在第一行代码之后,
x
的值为
0
,而
0
加上
5
仍然是
5


再举一个例子,让我们用这个表达式:
1&3
。我们有两种二进制位模式:

0 1
1 1
产生这个结果的原因是:

0 0 
0 1
1 0
所以我们得到
1
。我们也可以做
2和3

1 0
1 1
要获得此结果,请执行以下操作:

0 0 
0 1
1 0
这是
2



按位AND有许多用途。其中一个简单的方法是检查偶数对奇数。表达式
x&1==1
是一种快速检查变量
x
是否为奇数的方法
x&1==0
用于快速检查它是否为偶数。

&是C中的逐位运算符#

因此,int x=1&2将给出0作为结果。这是因为二进制中的1可以表示为01,2可以表示为10。因此,两者之间的AND运算将导致00即0

当x的值为0,y的值为5时,它们之和的结果为5


有关按位运算符的更多信息,请参阅

参阅此
&
为按位运算符且