Order of operations not correct? (C++) : <p>I was writing a small Least common multiple algorithm and encountered something I don't understand. This is the first and last part of the code:</p>

<pre><code>long a = 14159572;
long b = 63967072;
int rest = 4;
long long ans;
.
. // Some other code here that is not very interesting.
.
    else
{
    //This appears correct, prints out correct answer. 

    ans = b/rest;
    std::cout &lt;&lt; a*ans;
}
</code></pre>

<p>But if I change the last "else" to this it gives an answer that is much smaller and incorrect:</p>

<pre><code>    else
{

    std::cout &lt;&lt; a*(b/rest);
}
</code></pre>

<p>Anyone know why this is? I don't think it's an overflow since it was no negative number that came out wrong, but rather just a much smaller integer (around 6*10^8) than the actual answer (around 2.2*10^14). As far as I understand it should calculate "b/rest" first in both cases, so the answers shouldn't differ?</p>
