What are Bitmasks?
In computer science, a mask is data that is used for bitwise operations. Essentially it is a variable.
They are very often used in C programs.
These are the bit operators:
- ~ Bitwise NOT (not to be confused with Logical NOT ‘!’)
- & Bitwise AND (not to be confused with Logical AND ‘&&’)
- | Bitwise OR (again, not to be confused with Logical OR ‘||’)
- ^ Bitwise XOR
- << Bitwise left shift
- >> Bitwise right shift
This is how the operators work:
|Bit A||Bit B||A & B||A | B||A ^ B||~A||A << B||A >> B|
Lets say I have any variable named “variable” with 32 bit.
Get the last bit:
return variable & 1;
Get the first bit:
return variable >> 31;
Get the bits 4 – 14 (11 bits):
return (variable >> 4) & ((1<<11) - 1);
Getting the pow(2,11):
- What does a type followed by _t (underscore-t) represent?. Jonathan Leffler, Stackoverflow.
- Why does mode_t use 4 byte?. Niklas B., Stackoverflow.