summaryrefslogtreecommitdiff
path: root/other/bitOps.cpp
diff options
context:
space:
mode:
authorPaul Jungeblut <paul.jungeblut@gmail.com>2017-10-22 12:55:53 +0200
committerPaul Jungeblut <paul.jungeblut@gmail.com>2017-10-22 12:55:53 +0200
commit0d90b5cda91a7a9145f6f70d13994090ae6dc28b (patch)
tree67f4c8b51ac3da32f9adc771bf519f323111149a /other/bitOps.cpp
parent730a919fdf8368baea6cbb4b93e96e9bdeda00fc (diff)
Adding function to count the number of 1-bits in an integer.
Diffstat (limited to 'other/bitOps.cpp')
-rw-r--r--other/bitOps.cpp6
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;
+}