OpCodes.Div 字段

定义

将两个值相除并将结果作为浮点(F 类型)或商(int32 类型)推送到计算堆栈上。

C#
public static readonly System.Reflection.Emit.OpCode Div;

字段值

注解

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

格式 程序集格式 说明
5B div 将两个值相除以返回商或浮点结果。

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

  1. value1 被推送到堆栈上。

  2. value2 被推送到堆栈上。

  3. value2value1 从堆栈中弹出; value1value2除以 。

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

result = value1 div value2 满足以下条件:

| result |= | value1 | / | | value2 |和:

sign (result) = +,如果 sign () value1 = sign (value2) ,则为 -,如果 sign (value1) ~= sign (value2)

指令 div 计算结果并将其推送到堆栈上。

整数除法将截断为零。

将有限数除以零会生成正确有符号的无限值。

将零除以零或无穷大将产生 NaN (非 A 数) 值。 任何除以无穷大的数字都将产生零值。

如果结果无法在结果类型中表示,则整型运算将引发 ArithmeticException 。 如果 value1 为最大负值,并且 value2 为 -1,则可能会发生这种情况。

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

请注意,在基于 Intel 的平台上 OverflowException ,计算 (minint div -1) 时,会引发 。 浮点运算在生成 NaNs 或无限 (不会引发异常,而是) 。

以下 Emit 方法重载可以使用 div opcode:

适用于

产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0