- A+

For Example,

If I write

`int var; var=-8/-5; `

As per operator precedence, -8/-5 would be equivalent to ((-8)/(-5)). But will it be possible for C89 to give two values like for the case of -8/5 it can give -1 or -2. or It will treat it as the division of two positive integers?

Question is in with reference to the book by K.N.King (C Programming A modern Approach)

C89 has rule that if *either operand* is negative then the result of a division can be rounded either up or down.

C89-3.3.5:

If either operand is negative, whether the result of the

`/`

operator is the largest integer less than the algebraic quotient or the smallest integer greater than the algebraic quotient is implementation-defined, as is the sign of the result of the`%`

operator. If the quotient`a/b`

is representable, the expression`(a/b)*b + a%b`

shall equal`a`

.

For example in case of -8/5; output of this could be -1 (`(-8)/5`

) or -2 (`-(8/5)`

).

In C99 it is guaranteed to be truncated towards 0.

In your case both the operands are -ve and output will be a +ve number (either 1 or 2 in this case).