OpCodes.Conv_I8 OpCodes.Conv_I8 OpCodes.Conv_I8 OpCodes.Conv_I8 Field


評価スタックの一番上の値を int64 に変換します。Converts the value on top of the evaluation stack to int64.

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



次の表は、命令の16進形式と 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
6A6A i8conv.i8 をにint64変換しint64 、スタックにプッシュします。Convert to int64, pushing int64 on stack.

スタックの移行動作は、次の順序で実行されます。The stack transitional behavior, in sequential order, is:

  1. valueはスタックにプッシュされます。value is pushed onto the stack.

  2. valueがスタックからポップされ、変換操作が試行されます。value is popped from the stack and the conversion operation is attempted.

  3. 変換が成功した場合、結果の値はスタックにプッシュされます。If the conversion is successful, the resulting value is pushed onto the stack.

オペコードconv.i8は、スタックvalueの一番上のをオペコードに指定された型に変換し、その値をスタックの一番上に残します。The conv.i8 opcode converts the value on top of the stack to the type specified in the opcode, and leave that converted value on the top of the stack. 4バイト未満の整数値は、評価スタックint32に読み込まれるときにに拡張されますconv.i ( conv.uまたはが使用されている場合はnative int、結果もになります)。Integer values of less than 4 bytes are extended to int32 when they are loaded onto the evaluation stack (unless conv.i or conv.u is used, in which case the result is also native int). 浮動小数点値はF型に変換されます。Floating-point values are converted to the F type.

浮動小数点数から整数値への変換では、数値が0方向に切り捨てられます。Conversion from floating-point numbers to integer values truncates the number toward zero. float64 からfloat32に変換する場合、有効桁数が失われる可能性があります。When converting from a float64 to a float32, precision can be lost. value大きすぎてに格納float32 (F)できない場合、正の無限value大 ( valueが正の場合) または負の無限大 (が負の場合) が返されます。If value is too large to fit in a float32 (F), positive infinity (if value is positive) or negative infinity (if value is negative) is returned. ある整数型から別の整数型への変換でオーバーフローが発生した場合、上位ビットは切り捨てられます。If overflow occurs converting one integer type to another, the high order bits are truncated. 結果がよりint32小さい場合、値は、スロットを埋めるために符号拡張されます。If the result is smaller than an int32, the value is sign-extended to fill the slot.

浮動小数点型から整数への変換でオーバーフローが発生した場合、返される値は指定されません。If overflow occurs converting a floating-point type to an integer the value returned is unspecified.

このフィールドを使用する場合、例外はスローされません。No exceptions are ever thrown when using this field. 結果Conv_Ovf_I8Conv_Ovf_I8_Un型が結果の値を正しく表すことができない場合に例外をスローする同等の命令については、「」および「」を参照してください。See Conv_Ovf_I8 and Conv_Ovf_I8_Un for equivalent instructions that will throw an exception when the result type can not properly represent the result value.

Emitのメソッドオーバーロードでは、 conv.i8オペコードを使用できます。The following Emit method overload can use the conv.i8 opcode:

  • ILGenerator (オペコード)ILGenerator.Emit(OpCode)