title: Is multiplication and division using shift operators in C actually faster?
body: <p>Multiplication and division can be achieved using bit operators, for example</p>
  
  <pre><code>i*2 = i&lt;&lt;1
  i*3 = (i&lt;&lt;1) + i;
  i*10 = (i&lt;&lt;3) + (i&lt;&lt;1)
  </code></pre>
  
  <p>and so on.</p>
  
  <p>Is it actually faster to use say <code>(i&lt;&lt;3)+(i&lt;&lt;1)</code> to multiply with 10 than using <code>i*10</code> directly? Is there any sort of input that can't be multiplied or divided in this way?</p>