title: Behavior of cout << hex with uint8 and uint16
body: <p>I'm noticing that <code>cout &lt;&lt; hex</code> is giving me strange results, and I cannot find anywhere that answers why.  What I am doing is simply assigning some values to both a <code>uint8_t</code> and <code>uint16_t</code> and then attempting to write them to stdout.  When I run this:</p>
  
  <pre><code>uint8_t a = 0xab;
  uint16_t b = 0x24de;
  cout &lt;&lt; hex &lt;&lt; a &lt;&lt; endl;
  cout &lt;&lt; hex &lt;&lt; b &lt;&lt; endl;
  </code></pre>
  
  <p>That I get the result:</p>
  
  <pre><code>$./a.out
  
  24de
  $
  </code></pre>
  
  <p>with no value displayed for the uint8_t.  What could be causing this?  I didn't think there wouldn't be a cout implementation for one type for not the other.</p>