What does (x ^ 0x1) != 0 mean?

KodeWarrior picture KodeWarrior · Dec 19, 2013 · Viewed 21.1k times · Source

I came across the following code snippet

if( 0 != ( x ^ 0x1 ) )
     encode( x, m );

What does x ^ 0x1 mean? Is this some standard technique?

Answer

Paul R picture Paul R · Dec 19, 2013

The XOR operation (x ^ 0x1) inverts bit 0. So the expression effectively means: if bit 0 of x is 0, or any other bit of x is 1, then the expression is true.

Conversely the expression is false if x == 1.

So the test is the same as:

if (x != 1)

and is therefore (arguably) unnecessarily obfuscated.