title: Signed to unsigned conversion in C - is it always safe?
body: <p>Suppose I have the following C code.</p>
  
  <pre><code>unsigned int u = 1234;
  int i = -5678;
  
  unsigned int result = u + i;
  </code></pre>
  
  <p>What implicit conversions are going on here, and is this code safe for all values of <code>u</code> and <code>i</code>? (Safe, in the sense that even though <em>result</em> in this example will overflow to some huge positive number, I could cast it back to an <em>int</em> and get the real result.)</p>