Bob123Moon
Bob123Moon

Reputation: 167

C# Bitwise Operator With Ints

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

Answers (3)

Joe
Joe

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

driis
driis

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

BrokenGlass
BrokenGlass

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

Related Questions