-5

C89 中以下每个表达式的值是多少?(如果表达式可能有多个值,请给出所有可能的值。)

a) 8/5 
My answer 1

b) -8/5 
A : -1

c)8/-5

A: -1

d)-8/-5
A:1

e)8 % -5
Answer: output is 3 but why? 
Also,are the other answers correct?
4

1 回答 1

6

b)、c) 和 e) 的结果由实现定义为整数除法舍入方向,负操作数在 c89 中实现定义。在 c99 中,舍入趋向于零,但在 c89 中,它是实现定义的。

例如:

-8/5

结果可以是-1(向零截断)或-2(向负无穷大截断)。

8 / -5.

8 % -5结果可以3(向零截断)或-2(向负无穷大截断)。

于 2013-07-26T10:29:46.057 回答