From 0d90b5cda91a7a9145f6f70d13994090ae6dc28b Mon Sep 17 00:00:00 2001 From: Paul Jungeblut Date: Sun, 22 Oct 2017 12:55:53 +0200 Subject: Adding function to count the number of 1-bits in an integer. --- other/bitOps.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'other/bitOps.cpp') 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; +} -- cgit v1.2.3