title: What does a bitwise shift (left or right) do and what is it used for?
body: <p>I've seen the operators <code>&gt;&gt;</code> and <code>&lt;&lt;</code> in various code that I've looked at (none of which I actually understood), but I'm just wondering what they actually do and what some practical uses of them are.</p>
  <p>If the shifts are like <code>x * 2</code> and <code>x / 2</code>, what is the real difference from actually using the <code>*</code> and <code>/</code> operators? Is there a performance difference?</p>