double arrow

Мультипликативные и аддитивные операции


Язык С++ поддерживает стандартный набор арифметических операций:

· умножение /*/

· деление (/)

· взятие остатка от деления(%)

· сложение (+)

· вычитание (-)

С++ поддерживает операцию унарного минуса (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 */

Сейчас читают про: