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)
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.
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
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.