Язык С++ поддерживает стандартный набор арифметических операций:
· умножение /*/
· деление (/)
· взятие остатка от деления(%)
· сложение (+)
· вычитание (-)
С++ поддерживает операцию унарного минуса (a+(-b)), которая выполняет дополнение до двух, а также, в качестве расширения по стандарту ANSI, операцию унарного плюса: (a+(+b)).
Мультипликативные операции
Мультипликативные операции *, / и % группируют слева направо. Выполняются обычные арифметические преобразования.
Форма записи:
выражение * выражение выражение / выражение выражение % выражениеБинарная операция * определяет умножение. Операция * ассоциативна и выражения с несколькими умножениями на одном уровне могут быть реорганизованы компилятором.
Пример:
int i=5; float f=0.2; double g,z; g=f*i;Бинарная операция / определяет деление. При делении положительных целых округление осуществляется в сторону 0, но если какой-либо из операндов отрицателен, то форма округления является машинно-зависимой. На всех машинах, охватываемых данным руководством, остаток имеет тот же знак, что и делимое. Всегда истинно, что (a/b)*b + a%b равно a (если b не 0).
|
|
Пример:
int i=49, j=10, n, m; n = i/j; /* результат 4 */ m = i/(-j); /* результат -4 */Бинарная операция % дает остаток от деления первого выражения на второе.
Выполняются обычные арифметические преобразования. Операнды не должны быть числами с плавающей точкой. Операция остаток от деления (%) дает остаток от деления первого операнда на второй.
Знак результата зависит от конкретной реализации. В данной реализации знак результата совпадает со знаком делимого. Если второй операнд равен нулю, то выдается сообщение.
Пример:
int n = 49, m = 10, i, j, k, l; i = n % m; /* 9 */ j = n % (-m); /* 9 */ k = (-n) % m; /* -9 */ l = (-n) % (-m); /* -9 */