Ответ 1
С++ 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/b
, так иa%b
равно undefined.