So the original question was, "
How do you write a function to count the number of bits set in an arbitrary byte?" I figured that if you're going to do this repeatedly, it might be worth just building a lookup table. The question then becomes "
How do you populate a table of set bit counts for each possible byte?" This can be solved with a simple iteration:
int exp = 1;
table[0] = 0;
for (int i = 1; i < 256; i++)
{
if (i == exp*2) exp *= 2;
table[i] = table[i-exp] + 1;
}
Now if I had thought of that during the interview ...
No comments:
Post a Comment