]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/lib/bits.qh
86b5df5970c0d1aa07387ec1de973399d581ab14
[xonotic/xonotic-data.pk3dir.git] / qcsrc / lib / bits.qh
1 #ifndef BITS_H
2 #define BITS_H
3
4 #define BIT(n) (1 << (n))
5 #define BITS(n) (BIT(n) - 1)
6 #ifndef BRANCHLESS_BITSET
7     #define BITSET(var, mask, flag) (flag ? (var) | (mask) : (var) &~ (mask))
8 #else
9     #define BITSET(var, mask, flag) ((var) ^ (-(flag) ^ (var)) & (mask))
10 #endif
11
12 int lowestbit(int f)
13 {
14     f &= ~(f << 1);
15     f &= ~(f << 2);
16     f &= ~(f << 4);
17     f &= ~(f << 8);
18     f &= ~(f << 16);
19     return f;
20 }
21
22 #endif