乘法運算子: 1,/、 及百分比
expression * expression
expression / expression
expression % expression
備註
乘法運算子如下:
乘法 (*)
除法 (/)
模數 (除法運算的餘數) (%)
這些二元運算子則有從左到右順序關聯性。
乘法運算子執行算術的型別的運算元。 模數運算子 (%),因為運算元必須是整數類資料型別有較嚴格的需求。 (取得浮點數除法運算的其餘部分,請使用執行階段函式中, fmod。) 轉換請參閱本文算術轉換會套用至運算元,結果都是轉換的型別。
乘法運算子所產生第一個運算元乘以第二個的結果。
除法運算子所產生第一個運算元除以第二個的結果。
模數運算子會產生下列的運算式,所給定的其餘部分位置 e1 是第一個運算元以及 e2 是第二個: e1 – (e1 / e2) * e2,其中兩個運算元屬於整數類資料型別。
除以 0 除數或模數運算式中未定義,並使執行階段錯誤。 因此,下列運算式會產生未定義的錯誤結果:
i % 0
f / 0.0
如果兩個運算元乘法、 除法、 或模數運算式具有相同的正負號,則結果為正數。 否則,結果就是負數。 模數運算的正負號的結果是由實作定義。
![]() |
---|
乘法運算子所執行的轉換不提供溢位或反向溢位情況,因為資訊可能會遺失,如果在轉換後的運算元型別不能表示乘法運算的結果。 |
Microsoft 專有的
Microsoft C++ 中,模數運算式的結果都是第一個運算元的正負號相同。
結束 Microsoft 特定
如果計算兩個整數的分割位置是不正確,而且只有一個運算元為負數,則結果為確實會產生除法運算的值小於最大的整數 (以大小過於分散,忽視正負號)。 例如,計算的值-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;
}