title: Bool type True and False
body: <p>I was playing around with the Bool type (Boolean Variable) and typed this:</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  int main(void)
  {
  using std::cout;
  using std::cin;
  using std::endl;
  
  bool $ok = false &amp; true;
  
  if($ok == true)
  {
      cout &lt;&lt; "The value is True." &lt;&lt; endl;
  }
  else if($ok == false)
  {
      cout &lt;&lt; "The value is false." &lt;&lt; endl;
  }
  
  cin.get();
  cin.get();
  return 0;
  }
  </code></pre>
  
  <p>I know the differences between using the bitwise operator <code>&amp;</code> and the logical operator <code>&amp;&amp;</code>, but I do not see how this produces a false (0) value. I know if I swapped the bitwise operator and used a <code>+</code> the expression <code>0+1</code> would cause it to evaluate to <code>true</code>. Can someone explain why this:</p>
  
  <pre><code>bool $ok = false &amp; true;
  </code></pre>
  
  <p>evaluates to false?</p>