OpCodes.Conv_U4 字段

定义

将位于计算堆栈顶部的值转换为 unsigned int32,然后将其扩展为 int32

public static readonly System.Reflection.Emit.OpCode Conv_U4;

字段值

注解

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

格式 程序集格式 说明
6D conv.u4 unsigned int32转换为 ,在int32堆栈上推送。

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

  1. value 被推送到堆栈上。

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

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

conv.u4 opcode 将value堆栈顶部的 转换为操作码中指定的类型,并将转换后的值保留在堆栈顶部。 当小于 4 字节 int32 的整数值加载到评估堆栈 (时,除非 conv.i 使用 或 conv.u ,在这种情况下,结果也会 native int) 。 浮点值将转换为 F 类型。

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

如果发生溢出,将浮点类型转换为整数,则返回的值未指定。

使用此字段时不会引发异常。 有关当结果类型无法正确表示结果值时将引发异常的等效指令,请参阅 Conv_Ovf_I4Conv_Ovf_I4_Un

以下 Emit 方法重载可以使用 conv.u4 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