#include #include unsigned int bitCount(int num); void main () { /* Here's your example number, in binary format for visual purposes */ int num = 0b10100000; int noTrailingZeros = num >> __builtin_ctz(num); unsigned int bitsRemain = bitCount(noTrailingZeros); printf( "Zeros: %d, No Zeros: %d, Bits remain: %d\n", num, noTrailingZeros, bitsRemain ); } unsigned int bitCount(int num) { unsigned int bits = 0; while (num) { bits++; num >>= 1; } return bits; } #### Zeros: 640, No Zeros: 5, Bits remain: 3