这个表达实际上意味着什么?
注意 - x和y变量只是样本值。
int x = 3;
int y = 1;
if ((x & y) !=0)
我继承了一个代码库,并没有达到按位运算符的速度。我已经读过了,但仍然遗漏了一些东西。救命啊!
答案 0 :(得分:8)
它正在比较每个值中的位。它返回在两个数字中设置的任何位。
在你的例子中:
3: 0011
1: 0001
3 & 1: 0001
答案 1 :(得分:2)
检查x和y是否都至少有一个公共位。在你的例子中,这将是真实的。
答案 2 :(得分:1)
if ((x & y) != 0)
这通常用于确定值x
是否具有特定的位标志(y
)集。 AND运算符返回一个整数,只包含在两个操作数中设置的那些位。