次の方法で共有


通常の算術変換

ほとんどの C の演算子は式のオペランドも型に取り込むかコンピューター実行で使用される整数のサイズに短い値を拡張する型変換を実行します。C の実行が変換演算子はオペランドの特定の演算子と種類によって異なります。ただし多くの演算子は整数および浮動の型のオペランドのような変換を実行します。これらの変換は 「算術変換と呼びます」。互換性のある型にオペランドの値の変換により値を変更しません。

次に表示される算術変換と呼ばれます 「通常の算術変換」と呼ばれます。次の手順では数値型を要求する二項演算子のみ適用されます。目的は結果の種類の共通型が生成されることがあります。の変換が実際に行われるかを確認するにはコンパイラにより式の二項演算に次のアルゴリズムを適用します。次の手順では優先順位ではありません。

  1. どちらのオペランドも型 long double 場合 long double を入力する場合は他のオペランドが変換されます。

  2. 上記の条件が満たされていないし両方のオペランドが型 倍精度浮動小数点型 場合 倍精度浮動小数点型 を入力する場合は他のオペランドが変換されます。

  3. 上の 2 種類の条件が満たされないし両方のオペランドが型 フローティング 場合 フローティング を入力する場合は他のオペランドが変換されます。

  4. 上の 3 種類の条件 (オペランドがフローティングの型ではありません。このエディターでは次のように必要な変換はオペランドで実行されます :

    • どちらのオペランドも型 unsigned long 場合 unsigned long を入力する場合は他のオペランドが変換されます。

    • 上記の条件が満たされていないし両方のオペランドが long 型と型の他 unsigned int 場合 unsigned long を入力する場合はどちらのオペランドも変換されます。

    • 上の 2 種類の条件が満たされないし両方のオペランドが型 long 場合 long を入力する場合は他のオペランドが変換されます。

    • 上の 3 種類の条件が満たされないし両方のオペランドが型 unsigned int 場合 unsigned int を入力する場合は他のオペランドが変換されます。

    • 上記の該当なし : 条件を満たす場合 int を入力する場合はどちらのオペランドも変換されます。

次のコードはこれらの変換規則を示しています :

float   fVal;
double  dVal;
int   iVal;
unsigned long ulVal;

dVal = iVal * ulVal; /* iVal converted to unsigned long
                      * Uses step 4.
                      * Result of multiplication converted to double 
                      */
dVal = ulVal + fVal; /* ulVal converted to float
                      * Uses step 3.
                      * Result of addition converted to double 
                      */ 

参照

関連項目

C の演算子