diff options
Diffstat (limited to 'other')
| -rw-r--r-- | other/bitOps.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/other/bitOps.cpp b/other/bitOps.cpp index 8bad842..12d6d32 100644 --- a/other/bitOps.cpp +++ b/other/bitOps.cpp @@ -14,3 +14,9 @@ a = -1 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; +} |
