title: Why is this comparison always true?
body: <p>I have the following code in my file:</p>
  
  <pre><code>unsigned char * pData = new unsigned char...
  
  ...
  
  if(pData[0] &gt;= 160 &amp;&amp; pData[0] &lt;= 255)
  </code></pre>
  
  <p>When I compile it, I get a warning from the compiler (gcc):</p>
  
  <blockquote>
    <p><strong>Warning: comparison is always true due to limited range of data type</strong></p>
  </blockquote>
  
  <p>How can this be? Isn't the range of an <code>unsigned char</code> 0-255? I'm confused.</p>