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...