title: Unexpected results from bitwise operation why (1 | 1 & 2) gives 1 instead of 2?
body: <p>Cannot get this simple calculation straight using visual studio 2010</p>
  
  <pre><code>std::cout&lt;&lt;(1 | 1 &amp; 2);    
  
  //gives the value 1, was expecting 2 since 1 | 1 = 2 , the &amp; 2   gives 2
  
  
  std::cout&lt;&lt;( (1 | 1) &amp; 2); 
  
  //gives the value 0, why is this different from above?
  </code></pre>