title: Unsigned values in C
body: <p>I have the following code:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main() {
      unsigned int a = -1;
      int b = -1;
      printf("%x\n", a);
      printf("%x\n", b);
  
      printf("%d\n", a);
      printf("%d\n", b);
  
      printf("%u\n", a);
      printf("%u\n", b);
      return 0;
  }
  </code></pre>
  
  <p>The output is:</p>
  
  <pre><code>ffffffff
  ffffffff
  -1
  -1
  4294967295
  4294967295
  </code></pre>
  
  <p>I can see that a value is interpreted as signed or unsigned according to the value passed to <code>printf</code> function. In both cases, the bytes are the same (<code>ffffffff</code>). Then, what is the <code>unsigned</code> word for?</p>