title: while loop with unsigned integer condition
body: <p>I'm not sure how the while loop works in the following simple piece of code</p>
  
  <pre><code>short CountBits(unsigned int x){
      short num_bits = 0;
      while (x){
          num_bits += x &amp; 1;
          x &gt;&gt;= 1;
      }
      return num_bits;
  }
  </code></pre>
  
  <p>How does an unsigned integer evaluate to True or False?</p>