Перемножительные операторы: *,/и %

 expression * expression 
 expression / expression 
 expression % expression

Заметки

Перемножительные операторы:

  • Умножение (*)

  • Деление (/)

  • Модуль (остаток от деления) (%)

Эти двоичные операторы имеют ассоциативность слева направо.

Перемножительные операторы принимают операнды арифметических типов.Оператор модуля (%) имеет более строгое требование в, чтобы его операнды должны быть объединенного типа.(Получить остаток от деления плавающей запятой, используйте функцию среды выполнения fmod.) Покрытые внутри преобразования арифметические преобразования применить к операндам и результат преобразованного типа.

Оператор умножения формирует результат умножения первый операнд на второй.

Оператор деления формирует результат деления первого операнда на второй.

Оператор модуля возвращает остаток, следующее выражение, где e1 первый операнд и e2 второе: e1 - (e1 / e2) * e2, где оба операнда целых типов.

Undefined и вызывает деление 0 в отделении или выражении модуля ошибку во время выполнения.Поэтому следующие выражения создают неопределенный, ошибочных результаты:

i % 0
f / 0.0

Если оба операнда к умножению, отделению или выражению модуля имеют один и тот же знак, то результатом является положительным.В противном случае результатом является отрицательным.Результат операции реализация-определен символов модуля.

ПримечаниеПримечание

Поскольку conversions performed перемножительными операторами не обеспечивают для условий переполнения или потери точности, информация может быть потеряно, если результат перемножительной операции не могут быть представлены в типах операндов после преобразования.

Только для систем Microsoft

В microsoft C++, результат выражения модуля всегда совпадает со знаком первого операнда.

ЭЛЕМЕНТ, относящийся Майкрософт

Если вычисляемый деление 2 целых чисел inexact и только один операнд является отрицательным, то результат наибольшее целое число (в пренебрегая знаком) значению, что операция деления, чем точное значение.Например, вычисляемое значение - 11/3 - 3,666666666.Результат этого целого деления - 3.

Связь между операторами, задается идентификатором (перемножительнымиe1 / e2) * e2 + e1 % e2 == e1.

Пример

Следующая программа демонстрирует перемножительные операторы.Обратите внимание, что любой из операндов 10 / 3 явно приводится к типу float во избежание усечения, чтобы оба операнда являются типа float перед отделением.

// expre_Multiplicative_Operators.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main() {
   int x = 3, y = 6, z = 10;
   cout  << "3 * 6 is " << x * y << endl
         << "6 / 3 is " << y / x << endl
         << "10 % 3 is " << z % x << endl
         << "10 / 3 is " << (float) z / x << endl;
}

См. также

Ссылки

Выражения с бинарными операторами

Операторы C++

Operator precedence and Associativity

Операторы C# перемножительные