title: What does the statement (1<<y) mean in bitwise operations
body: <p>I am a complete beginner at bitwise operations (and not very experienced at C either) and I bumped into the expression:</p>
  
  <pre><code>x |= (1&lt;&lt;y)
  </code></pre>
  
  <p>At first I thought it meant "x equals x or y shifted left by on bit", but then I realized that would be:</p>
  
  <pre><code>x |= (y&lt;&lt;1)
  </code></pre>
  
  <p>Lastly I thought it meant "x equals x or 1 shifted left by y bits", but I don't understand where that 1 is in an 8-bit register, does it mean 00000001? so that:</p>
  
  <pre><code>a = 2
  b = 1&lt;&lt;a // so b=00000010
  </code></pre>
  
  <p>Could someone tell me the correct meaning of this statement. Also, if anyone has a good link explaining bitwise syntax I'd be grateful.
  Thanks.</p>