Sunday, April 17, 2022

C programming - count number of bits that are set in an integer ( without using loops )


#define bit(val, p)  ((val & (1 << p)) >> p)

int main()

{

    unsigned int val   = 0x12344;

    int count = 0;

    count = bit(val,0) +  bit(val,1) + bit(val,2) + bit(val,3)

            + bit(val,4) + bit(val,5) + bit(val,6) + bit(val,7)

            + bit(val,8) + bit(val,9) + bit(val,10) + bit(val,11)

            + bit(val,12) + bit(val,13) + bit(val,14) + bit(val,15)

            + bit(val,16) + bit(val,17) + bit(val,18) + bit(val,19)

            + bit(val,20) + bit(val,21) + bit(val,22) + bit(val,23)

            + bit(val,24) + bit(val,25) + bit(val,26) + bit(val,27)

            + bit(val,28) + bit(val,29) + bit(val,30) + bit(val,31);

    printf("\ncount  = %d\n", count);

    return 0;

}


No comments:

Post a Comment