当b不为零时,我总是有`(a / b * b)+ a%b == a`吗?

时间:2012-09-02 01:05:00

标签: c++ c

对于int a, b,我知道当ab中只有一个为负数时,a / ba % b的结果取决于机器。但是当(a / b * b) + a % b == a不为零时,我总是b吗?

1 个答案:

答案 0 :(得分:18)

C ++11§5.6[expr.mul] / 4指定:

  

如果商品a/b在结果类型中可以表示,(a/b)*b + a%b等于a

C11§6.5.5/ 6规定了相同的语法略有不同:

  

如果商a/b可表示,则表达式(a/b)*b + a%b应等于a;否则,a/ba%b的行为都是未定义的。