OpCodes.Conv_R_Un 字段

定义

将计算堆栈顶部的无符号整数值转换为 float32

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

字段值

注解

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

Format 程序集格式 Description
76 conv.r.un 将无符号整数转换为浮点,在 F 堆栈上推送。

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

  1. value 被推送到堆栈上。

  2. value 从堆栈中弹出并尝试转换操作。

  3. 如果转换成功,则会将生成的值推送到堆栈上。

conv.r.un操作代码将value堆栈顶部转换为操作代码中指定的类型,并将转换后的值保留在堆栈的顶部。 当将小于 4 个字节 int32 的整数值加载到计算堆栈上时(除非 conv.iconv.u 被使用,在这种情况下,结果也是 native int)。 浮点值转换为 F 类型。

从浮点数转换为整数值将数字截断为零。 从 a 转换为 a float64float32时,精度可能会丢失。 如果 value 太大而无法拟合 float32 (F),则返回正无穷大(如果 value 为正数)或负无穷大(如果 value 为负数)。 如果溢出将一个整数类型转换为另一个整数类型,则会截断高阶位。 如果结果小于 a int32,则值将进行签名扩展以填充槽。

如果发生溢出将浮点类型转换为整数,则 result 返回的整数未指定。 该 conv.r.un 操作从堆栈中取下一个整数,将其解释为无符号,并将它替换为一个浮点数来表示整数:一个 float32,如果这足够宽,表示整数而不丢失精度,则为另一个 float64整数。

使用此字段时,不会引发任何异常。

以下 Emit 方法重载可以使用 conv.r.un 操作码:

适用于