title: Implicit type conversion rules in C++ operators
body: <p>I want to be better about knowing when I should cast. What are the implicit type conversion rules in C++ when adding, multiplying, etc. For example,</p>
  
  <pre><code>int + float = ?
  int * float = ?
  float * int = ?
  int / float = ?
  float / int = ?
  int / int = ?
  int ^ float = ?
  </code></pre>
  
  <p>et cetera...</p>
  
  <p>Will the expression always be evaluated as the more precise type? Do the rules differ for Java? 
  Please correct me if I have worded this question inaccurately.</p>