保险基础数据模型(200801版)算术运算符解析

算术运算符: */%+ 用于执行算术运算。

  • 乘法表达式 multiplicative-expression:
    • multiplicative-expression * unary-expression 表示乘法运算。
    • multiplicative-expression / unary-expression 表示除法运算。
    • multiplicative-expression % unary-expression 表示取模运算。
  • 加法表达式 additive-expression:
    • additive-expression + multiplicative-expression 表示加法运算。
    • additive-expression – multiplicative-expression 表示减法运算。

如果算术运算符的操作数具有编译时类型 dynamic,则表达式是动态绑定的。表达式的编译时类型也为 dynamic,并在运行时使用实际的运行时类型进行运算。

7.8.1 乘法运算符

x * y 形式的运算使用二元运算符重载决策机制选择特定的运算符实现。操作数转换为所选运算符的参数类型,结果类型为该运算符的返回类型。

预定义乘法运算符

  • 整数乘法:

    • int operator *(int x, int y);
    • uint operator *(uint x, uint y);
    • long operator *(long x, long y);
    • ulong operator *(ulong x, ulong y);

    在 checked 上下文中,如果结果超出结果类型的范围,则引发 System.OverflowException。在 unchecked 上下文中,溢出不报告,超出结果类型范围的高位将被截断。

    * 浮点乘法:

    * float operator *(float x, float y);

    * double operator *(double x, double y);

    根据 IEEE 754 算术运算法则计算乘积。

    结果:

    | 操作数 | 非零有限值 | 零 | 无穷大 | NaN |

    | -------------- | -------- | ---- | -------- | ---- |

    | 非零有限值 | z | 0 | 无穷大 | NaN |

    | 零 | 0 | 0 | NaN | NaN |

    | 无穷大 | 无穷大 | NaN | 无穷大 | NaN |

    | NaN | NaN | NaN | NaN | NaN |

    如果结果对目标类型而言太大,则结果为无穷大。

pdf 文件大小:2.95MB