Search code examples
c++cbit-manipulation

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


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.


Solution

  • 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.