Help counting number of bits set in an integer
I have to write a program that counts the number of bits set in an integer. For example, the number 5 (decimal), which is 0000000000000101 (binary), has two bits set. I know how to count the number of bits in a char, but I don't know how to count the extra 8 bits in an integer. How would i navigate to the other byte and count the eight bits?
Here is how i'd count the number of bits in a char...
Code:
#include <stdio.h>
void main()
{
char ch = 5; /*assign it a random number*/
int counter = 0;
int i;
for (i = 0x80; i > 0; i = (i >> 1)) {
if ((ch & i) != 0)
++counter;
}
}
Thanks for any help with this...