title: Why does printf not print out just one byte when printing hex?
body: <p><code>pixel_data</code> is a <code>vector</code> of <code>char</code>. </p>
  
  <p>When I do <code>printf(" 0x%1x ", pixel_data[0] )</code> I'm expecting to see <code>0xf5</code>.</p>
  
  <p>But I get <code>0xfffffff5</code> as though I was printing out a 4 byte integer instead of 1 byte.</p>
  
  <p>Why is this? I have given <code>printf</code> a <code>char</code> to print out - it's only 1 byte, so why is <code>printf</code> printing 4?</p>
  
  <p>NB. the <code>printf</code> implementation is wrapped up inside a third party API but just wondering if this is a feature of standard <code>printf</code>?</p>