diff options
| author | Paul Jungeblut <paul.jungeblut@gmail.com> | 2017-10-28 12:03:10 +0200 |
|---|---|---|
| committer | Paul Jungeblut <paul.jungeblut@gmail.com> | 2017-10-28 12:03:10 +0200 |
| commit | 00b7570f067b4261c05094b2e80dfb6c4c8c1742 (patch) | |
| tree | 50a4f5bbe2c157758e597a0610463171e172e5bf /other/bitOps.cpp | |
| parent | b51e4df46458f85de4487c7908170e663933b8c2 (diff) | |
Adding builtins to count number of set bits.
Diffstat (limited to 'other/bitOps.cpp')
| -rw-r--r-- | other/bitOps.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/other/bitOps.cpp b/other/bitOps.cpp index 12d6d32..5b54278 100644 --- a/other/bitOps.cpp +++ b/other/bitOps.cpp @@ -15,8 +15,5 @@ a = (1 << n) - 1 // Iteriert über alle Teilmengen einer Bitmaske (außer der leeren Menge). for (int subset = bitmask; subset > 0; subset = (subset - 1) & bitmask) // Zählt Anzahl der gesetzten Bits. -int numberOfSetBits(int i) { - i = i - ((i >> 1) & 0x55555555); - i = (i & 0x33333333) + ((i >> 2) & 0x33333333); - return (((i + (i >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24; -} +int __builtin_popcount(unsigned int x); +int __builtin_popcountll(unsigned long long x); |
