OpCodes.Rem 字段

定义

将两个值相除并将余数推送到计算堆栈上。

public: static initonly System::Reflection::Emit::OpCode Rem;
public static readonly System.Reflection.Emit.OpCode Rem;
 staticval mutable Rem : System.Reflection.Emit.OpCode
Public Shared ReadOnly Rem As OpCode 

字段值

注解

下表列出了指令的十六进制和 Microsoft 中间语言 (MSIL) 程序集格式,以及简短的参考摘要:

格式 程序集格式 说明
5D rem 将除value1value2以的余数推送到堆栈上。

堆栈过渡行为(按顺序排列)是:

  1. value1 推送到堆栈上。

  2. value2 被推送到堆栈上。

  3. value2value1 从堆栈中弹出,计算的其余部分divvalue1value2

  4. 结果将推送到堆栈上。

result = value1remvalue2 满足以下条件:

result = value1 - value2× (value1divvalue2) ,以及:

0 = | result | < | value2 |, sign (result) = sign (value1) ,其中 div 是截断到零的除法指令。

如果 value2 为零或 value1 无穷大,则结果为 NaN。 如果 value2 为无穷大,则 value1 结果 () 求反 -infinity

如果 为零,则value2引发DivideByZeroException整型运算。

请注意,在基于 Intel 的平台上 OverflowException ,当计算 (minint rem -1) 时,会引发 。

以下 Emit 方法重载可以使用 rem 操作码:

适用于