11

については、との 1 つだけが負の場合、 と の結果はマシンに依存するint a, bことがわかっています。しかし、私はいつもゼロでないときを持っていますか?aba / ba % b(a / b * b) + a % b == ab

4

1 に答える 1

19

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未定義です。

于 2012-09-02T01:07:57.713 に答える