title: Conversions between types in C
body: <p>I know that whenever an operator used on two operands which have different types, the results type would be the "dominant" type between the two operands.<br>
  For example, the result of<br>
  <code>(int) + (float)</code><br>
  would be a float.<br>
  Another example would be:<br>
  <code>(char) + (double)</code>
  and the result is double.</p>
  
  <p>That is correct for signed variables and only signed variables.</p>
  
  <p>But what happens when we involve signed variables with unsigned variables?</p>