C#按位运算符与Ints

这个表达实际上是什么意思?

注意 – x和y变量只是样本值。

int x = 3; int y = 1; if ((x & y) !=0) 

我inheritance了一个代码库,并没有达到按位运算符的速度。 我已经读过了,但仍然遗漏了一些东西。 救命!

它正在比较每个值中的位。 它返回在两个数字中设置的任何位。

在你的例子中:

  3: 0011 1: 0001 3 & 1: 0001 

这将检查x和y是否都至少有一个公共位集。 在你的例子中,这将是真实的。

 if ((x & y) != 0) 

这通常用于确定值x是否具有特定的位标志( y )集。 AND运算符返回一个整数,该整数仅包含在两个操作数中设置的那些位。