OpCodes.Rem_Un 字段


将两个无符号值相除并将余数推送到计算堆栈上。Divides two unsigned values and pushes the remainder onto the evaluation stack.

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



下表列出了指令的十六进制和 Microsoft 中间语言(MSIL)程序集格式以及简短的参考摘要:The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

格式Format 程序集格式Assembly Format 说明Description
5E5E rem.unrem.un 将未签名的 value1 除以无符号的 @no__t 1 推送到堆栈上。Pushes the remainder of dividing unsigned value1 by unsigned value2 onto the stack.

堆栈转换行为顺序如下:The stack transitional behavior, in sequential order, is:

  1. value1 推送到堆栈上。value1 is pushed onto the stack.

  2. value2 推送到堆栈上。value2 is pushed onto the stack.

  3. value2 和 @no__t 从堆栈中弹出,并计算 @no__t 2 div @no__t 计算。value2 and value1 are popped from the stack and the remainder of value1 div value2 computed.

  4. 将结果推送到堆栈上。The result is pushed onto the stack.

result @ no__t-1 @ no__t value1 rem.un 满足以下条件:result = value1 rem.un value2 satisfies the following conditions:

result @ no__t-1 @ no__t-2 @ no__t-3 @ no__t-4 x (value1 div.un value2)和:result = value1 - value2 x(value1 div.un value2), and:

0 = result @ no__t-1 @ no__t-2,其中,div.un 是未签名的除法指令。0 = result < value2, where div.un is the unsigned division instruction.

@No__t-0 指令计算 @no__t,并将其推送到堆栈上。The rem.un instruction computes result and pushes it on the stack. Rem.un 将其参数视为无符号整数,而 Rem 将其视为有符号整数。Rem.un treats its arguments as unsigned integers, while Rem treats them as signed integers.

对于浮点数,不指定 Rem.unRem.un is unspecified for floating-point numbers.

如果 value2 为零,则整数运算引发 DivideByZeroExceptionIntegral operations throw DivideByZeroException if value2 is zero.

以下 @no__t 0 方法重载可以使用 @no__t 操作码:The following Emit method overload can use the rem.un opcode:

  • ILGenerator.Emit(OpCode)ILGenerator.Emit(OpCode)