Reputation: 167
What does this expression actually mean??
Note - the x and y vars are just sample values.
int x = 3;
int y = 1;
if ((x & y) !=0)
I inherited a codebase and am not up to speed on bitwise operators. I have read up, but am still missing something. Help!
Upvotes: 1
Views: 239
Reputation: 42577
It's comparing the bits in each value. It returns any bits that are set in both numbers.
In your example:
3: 0011
1: 0001
3 & 1: 0001
Upvotes: 8
Reputation: 164281
if ((x & y) != 0)
This would typically be used to determine whether the value x
has a specific bit-flag (y
) set. The AND operator returns an integer with only those bits set that are set in both operands.
Upvotes: 1
Reputation: 160852
This checks whether x and y both have at least one common bit set. In the case of your example this would be the true.
Upvotes: 2