in reply to Re: Efficient bit counting with a twist.
in thread Efficient bit counting with a twist.
Using it to count set bits in the whole bytes before your position and then, if necessary, those bits in the partial byte up to but not including it via a mask might be viable.
Yes. That works and is the same scheme questor came up with (rather more compactly:) in Re: Efficient bit counting with a twist..
But the best answer is the one AnomalousMonk pointed out in Re: Efficient bit counting with a twist..
Ie. To recognise that the unpack template '%32b*' is not a indivisible token saying 'count the bits', but actually contains 3 parts:
- %32 accumulate a 32-bit count ...
- b of the binary bits set ...
- * for all the bits in the string.
And that by simply interpolating $p into the template, in place of *, it counts the set bits within the first $p bits of the string.
Perl had the problem solved; I just didn't recognise it :) (Hence my: D'oh! D'oh! D'oh!..... moment. :)
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: Efficient bit counting with a twist.
by davido (Cardinal) on Jan 28, 2013 at 02:32 UTC | |
by AnomalousMonk (Archbishop) on Jan 28, 2013 at 09:01 UTC | |
by BrowserUk (Patriarch) on Jan 28, 2013 at 12:11 UTC |
In Section
Seekers of Perl Wisdom