title: Evaluation of this statement
body: <p>I am reading a C book and don't understand this statement it is asking me to evaluate:</p>
  <p><code>!(1 &amp;&amp; !(0 || 1))</code></p>
  <p>I can understand some things here... This is what I have so far, <code>not(1 and not(0 or 1))</code></p>
  <p>So is it <code>not 1 and not 0 or 1</code>? Or is it <code>not 1 and 0 or 1</code>? Do those two <code>!</code> cancel each other out like a double negative? The answer is <code>true</code> but I expected <code>false</code>.</p>
  <p>What is the explanation?</p>