diff options
| author | Paul Jungeblut <paul.jungeblut@gmail.com> | 2017-10-22 12:55:53 +0200 |
|---|---|---|
| committer | Paul Jungeblut <paul.jungeblut@gmail.com> | 2017-10-22 12:55:53 +0200 |
| commit | 0d90b5cda91a7a9145f6f70d13994090ae6dc28b (patch) | |
| tree | 67f4c8b51ac3da32f9adc771bf519f323111149a /other/bitOps.cpp | |
| parent | 730a919fdf8368baea6cbb4b93e96e9bdeda00fc (diff) | |
Adding function to count the number of 1-bits in an integer.
Diffstat (limited to 'other/bitOps.cpp')
| -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; +} |
