Двоичный/оператор дает частное, а двоичный оператор% дает остаток от деления первого выражения на второй. Если второй операнд/или% равен нулю, поведение undefined. Для интегральных операндов оператор/дает алгебраическое отношение с любой дробной частью, отброшенной; если фактор a/b является представимый в типе результата, (a/b) * b + a% b равен a.
Если оба операнда неотрицательны, то остаток неотрицателен; если не, знак остатка определяется реализацией.
от ISO14882: 2003 (e) больше не присутствует в ISO14882: 2011 (e)
Ответ 2
Знак в таких случаях (т.е. когда один или оба операнда отрицательны) определяется реализацией. Спектр говорит в §5.6/4 (С++ 03),
Двоичный/оператор дает частное, а бинарный оператор% дает остаток от деления первого выражения на второе. Если второй операнд/или% равен нулю, поведение undefined; в противном случае (a/b) * b + a% b равно a. Если оба операнда неотрицательны, то остаток неотрицателен; , если нет, знак остатка определяется реализацией.
Это все, что должен сказать язык, что касается С++ 03.