bartjunk64 at gmail.com
Sat Mar 5 19:03:24 CET 2016
Does FreePascal have a routine for counting bits?
So that e.g. BitCount(%1001100100001) gives 5 (number of bits that are 1)?
I came up with (extracted from IntToBin()):
function BitCount(N: Int64): Integer;
Result := 0;
Q := QWord(N);
for i := 0 to (8 * SizeOf(N) - 1) do
if ((Q and 1) = 1) then Inc(Result);
Q := Q shr 1;
Surely this can be done better?
More information about the fpc-pascal