title: Printed unsigned chars as hex are too long
body: <p>Lets assume I have this very simple example:</p>
  
  <pre><code>vector&lt;unsigned char&gt; bytes {0xFF, 0xFF, 0xFD};
  
  for (const char &amp; v: bytes) {
      cout &lt;&lt; hex &lt;&lt; setfill('0') &lt;&lt; setw(2) &lt;&lt; uppercase &lt;&lt; static_cast&lt;unsigned&gt;(v) &lt;&lt;" ";
  }
  
  cout &lt;&lt; endl;
  </code></pre>
  
  <p>This gives: </p>
  
  <pre><code>FFFFFFFF FFFFFFFF FFFFFFFD
  </code></pre>
  
  <p>However, I would like to have it short, like:</p>
  
  <pre><code>FF FF FD
  </code></pre>
  
  <p>So why do I get some many extra "FFFFF"? </p>