OpCodes.Conv_R_Un 字段
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将计算堆栈顶部的无符号整数值转换为 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 堆栈上推送。 |
堆栈过渡行为按顺序排列,为:
value被推送到堆栈上。value从堆栈中弹出并尝试转换操作。如果转换成功,则会将生成的值推送到堆栈上。
conv.r.un操作代码将value堆栈顶部转换为操作代码中指定的类型,并将转换后的值保留在堆栈的顶部。 当将小于 4 个字节 int32 的整数值加载到计算堆栈上时(除非 conv.i 或 conv.u 被使用,在这种情况下,结果也是 native int)。 浮点值转换为 F 类型。
从浮点数转换为整数值将数字截断为零。 从 a 转换为 a float64float32时,精度可能会丢失。 如果 value 太大而无法拟合 float32 (F),则返回正无穷大(如果 value 为正数)或负无穷大(如果 value 为负数)。 如果溢出将一个整数类型转换为另一个整数类型,则会截断高阶位。 如果结果小于 a int32,则值将进行签名扩展以填充槽。
如果发生溢出将浮点类型转换为整数,则 result 返回的整数未指定。 该 conv.r.un 操作从堆栈中取下一个整数,将其解释为无符号,并将它替换为一个浮点数来表示整数:一个 float32,如果这足够宽,表示整数而不丢失精度,则为另一个 float64整数。
使用此字段时,不会引发任何异常。
以下 Emit 方法重载可以使用 conv.r.un 操作码: