#define BINARY_1 1
#define BINARY_10 2
#define BINARY_100 4
#define BINARY_1000 8
#include <stdio.h>
int main(void)
{
  const int SHIFT_COUNT = 31;
  int count, i, msb;
  int e = 0x00000001;
  int test = BINARY_10 | BINARY_100 | BINARY_1000; /* 00001110b */

  for(i = 0; i < SHIFT_COUNT; i++) {
    e <<= 1;
  }

  for(count = 0, i = 0; i < SHIFT_COUNT; i++) {
    if(test & e) {
      count += 1;
    }
    test <<= 1;
  }

  printf("%d\n", count);
  return 0;
}
/*
C:\work>shiftand
3
*/