if( (10110 & 10000) == 10000 )
if( (value & mask) == mask )
I wonder, why do some people write "== mask" instead of "!= 0"? I suppose it doesn't matter much when the variable is "mask" and/or you use a function, but I've seen this pattern with huge blocks of hard-coded if checks with duplicated giant enum names everywhere.
Consider what happens if mask contains more than one bit set. Comparing the AND-result against the mask checks if all bits are set, while comparing against 0 checks if any bit is set.
In that case it is not a matter of relative style or convention, but a matter of absolute correctness; one is correct and the other one is wrong.
To me it is also a question about clarity. When you read the code, it is immediately clear what the intention is when you test against 'mask', rather than wondering for a few seconds why you are testing against 'not equal to zero'.