title: scanf can't scan into uint8_t
body: <p>When I try to use <code>scanf</code> with <code>uint8_t</code>, I get crazy results.
  Using <code>int</code>, I get the expected output "08 - 15".
  Using <code>uint8_t</code>, I get "00 - 15".</p>
  
  <pre><code>const char *foo = "0815";
  uint8_t d1, d2; // output: 00 - 15 (!!!)
  // int d1, d2;         // output: 08 - 15
  sscanf(foo, "%2d %2d", &amp;d1, &amp;d2);
  printf("%02d - %02d\n", d1, d2);
  </code></pre>
  
  <p>I'm using GCC.</p>