/* Untested! */
int total_bit_set(int number)
{
#define MAX_BIT_NUM 32 /* test for 32bit numbers */
#define MASK 0x01
int i = 0;
int total = 0;
for (i=0; i < MAX_BIT_NUM; ++i)
{
total = ( number & MASK ) ? total+1 : total ;
/* Right shift by 1 bit */
number = (number >> 1);
}
return total;
}
No comments:
Post a Comment