Bitwise Operation
Count 1 (GCC compiler)
__builtin_popcount(x);
__builtin_popcountl(x); // for long type
__builtin_popcountll(x); // for long long type
Count leading or trailing zeros in position number (GCC compiler)
(also has -l and -ll for long and long long)
__builtin_clz(x); // leading zeros
__builtin_ctz(x); // trailing zeros
Check parity of a number (GCC compiler)
Parity of a number refers to whether it contains an odd or even number of 1-bits. This function returns true(1) if the number has odd parity else it returns false(0) for even parity.
__builtin_parity(n);
Bitset
#define MAX_W 100
bitset<MAX_W> bs;
// construct bitset from int or string:
bitset<MAX_W> a(17);
bitset<MAX_W> a("1010");
Return lowest bit of 1
m & (-m)
Turn off the lowest bit that was set to 1
m & (m-1)
E.g., m=26 (11010) -> 24(11000)
Last updated