C/C++ check if one bit is set in, i.e. int variable

Milan picture Milan · Feb 7, 2009 · Viewed 277.8k times · Source
int temp = 0x5E; // in binary 0b1011110.

Is there such a way to check if bit 3 in temp is 1 or 0 without bit shifting and masking.

Just want to know if there is some built in function for this, or am I forced to write one myself.

Answer

mouviciel picture mouviciel · Feb 7, 2009

In C, if you want to hide bit manipulation, you can write a macro:

#define CHECK_BIT(var,pos) ((var) & (1<<(pos)))

and use it this way to check the nth bit from the right end:

CHECK_BIT(temp, n - 1)

In C++, you can use std::bitset.