This is an old revision of the document!
These functions are for bit math.
int npo2(int x) – returns the lowest power of 2 greater or equal to X.int bitlog2(int x) – returns the index of the highest used bit, aka integer binary logarithm. Useful to convert flags like 1«8 = 256 back into 8.These functions allow you to work with variables as if they were arrays of bits:
bool getbit(int a, int i) – returns bit a[i].int setbit(int a, int i) – performs a[i] = 1 and returns the result.int clrbit(int a, int i) – performs a[i] = 0 and returns the result.int tglbit(int a, int i) – performs a[i] = !a[i] and returns the result.
void notflag(int flags, int flag)
Bit flags can be applied using flags & SOMEFLAG. But removing them requires a more complicated expression !(flags & SOMEFLAG).
notflag(flags, SOMEFLAG) unsets SOMEFLAG, shorthand for !(flags & SOMEFLAG).