C# – A way to invert the binary value of a integer variable

c

I have this integer int nine = 9; which in binary is 1001. Is there an easy way to invert it so I can get 0110 ?

Best Answer

int notnine = ~nine;

If you're worried about only the last byte:

int notnine = ~nine & 0x000000FF;

And if you're only interested in the last nibble:

int notnine = ~nine & 0x0000000F;

The ~ operator is the bitwise negation, while the mask gives you only the byte/nibble you care about.

If you truly are interested in only the last nibble, the most simple is:

int notnine = 15 - nine;

Works for every nibble. :-)