title: the functionalities of two lines of code
body: <p>When I was trying to learn from an existing program, I could not understand what the following two lines of code try to do?</p>
  
  <pre><code>for(i=0;0==(x&amp;1);++i)x&gt;&gt;=1;
  
  
  if(0==(x-=y)) return y&lt;&lt;i;
  </code></pre>
  
  <p>Any explanations would be appreciated.</p>