title: Left bit shift 0 in Java
body: <p>Consider:</p>
  
  <pre><code>   int a = 0;
     a |= 1 &lt;&lt; a;
     System.out.println(a); 
  </code></pre>
  
  <p>It prints "1". Why? I thought left bit shifting 0 by any number of times was still 0. Where's it pulling the 1 from?</p>