乗算演算子: *、/、および %
expression * expression
expression / expression
expression % expression
解説
乗算演算子は次のとおりです :
乗算 *()
N/A ( または )
剰余 (なし)%() の剰余
これらの二項演算子は左から右の結合規則があります。
乗算演算子は数値型のオペランドを受け取ります。オペランドが整数型でなければならないこと % 剰余演算子 () はより厳しい要件があります。(浮動小数点部分を延長するためランタイム fmod関数を使用します)。算術変換 で説明するオペランドへの変換が適用され結果は変換後の型です。
乗算演算子は2 番目と 1 番目のオペランドを増加させる結果になります。
除算演算子は2 番目1 番目のオペランドで除算結果になります。
剰余演算子は e1 が 1 番目のオペランドである e2 が 2 番目には次の式で指定された剰余を導入しています : 両方のオペランドが整数型である場合e1 – (/)e1e2" e2。
残りの部分または式の 0 での除算は未定義であるため実行時エラーが発生します。したがって次の式は未定義間違った結果が生成されます :
i % 0
f / 0.0
乗算パートまたはそのほかの式の両方のオペランドの符号と同じである場合結果は正の数です。それ以外の場合結果はになります。剰余演算の結果の符号は実装定義されます。
[!メモ]
乗算演算子で実行される変換がオーバーフローまたはアンダーフローがないため情報演算結果が変換後のオペランドの型で表すことができない場合は失われる可能性があります。
Microsoft 固有の仕様 →
Microsoft C++ では剰余の式の結果は 1 番目のオペランドの符号と常に同じです。
終了 Microsoft 固有の仕様→
2 個の整数の計算された部分が正しくない場合と 1 個のオペランドだけが負の場合結果は最大の整数が (呼び出しで記号は無視しても小さいことで正確な値によって除算演算子。たとえば– 11 または 3 です – 3.666666666 の計算値。その必要な部分の結果は – 3 です。
乗算演算子との関係は ID (/) によって e1e2" e2 + 1% の ee2 == e1 されます。
使用例
次のプログラムは乗算演算子を示します。両方のオペランドがの前に float 型である必要が float を入力すると切り捨てを回避するに 10 / 3 のいずれかのオペランドが明示的にキャストする必要があることに注意してください。
// 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;
}