Codementor Events

C/C++ Macro & Bit Operations

Published Oct 16, 2019
C/C++ Macro & Bit Operations

Setting a bit
Use the bitwise OR operator (|) to set a bit. number |= 1 << x; That will set bit x.

Clearing a bit
Use the bitwise AND operator (&) to clear a bit. number &= ~(1 << x); That will clear bit x. You must invert the bit string with the bitwise NOT operator (~), then AND it.

Toggling a bit
The XOR operator (^) can be used to toggle a bit. number ^= 1 << x; That will toggle bit x.

Checking a bit
You didn’t ask for this but I might as well add it. To check a bit, AND it with the bit you want to check: bit = number & (1 << x); That will put the value of bit x into the variable bit.

#define bitset(byte,nbit)   ((byte) |=  (1<<(nbit)))
#define bitclear(byte,nbit) ((byte) &= ~(1<<(nbit)))
#define bitflip(byte,nbit)  ((byte) ^=  (1<<(nbit)))
#define bitcheck(byte,nbit) ((byte) &   (1<<(nbit)))
Discover and read more posts from Hamza BENDALI BRAHAM
get started
post comments1Reply
Nicolas Hasbun
2 years ago

pretty useful macros there,
ty!