title: Best method to find out set bit positions in a bit mask in C
body: <p>What would be the best way to identify all the set bit positions in a 64 bit bitmask. Suppose my bit mask is 0xDeadBeefDeadBeef, then what is the best way, to identify all the bit positions of the set bits in it.</p>
  
  <pre><code>long long bit_mask = 0xdeadbeefdeadbeef;
  unsigned int bit_pos=0;
  while(mask) {
    if((mask&amp;1)==1) {
       printf("Set bit position is:%d \n",bit_pos};
    }
    bit_pos++;
    mask&gt;&gt;=1; 
  }
  </code></pre>
  
  <p>One way is to loop through it, and check if a bit is set or not, if it is set, Return the count position and continue looping until the MSB, so for 64 bits, I would iterate until I have all the set bits traversed or all 64 bits traversed, if MSB is set, but there must be a better way of doing it?</p>