OpCodes.Neg OpCodes.Neg OpCodes.Neg OpCodes.Neg Field


値を無効にし、結果を評価スタックにプッシュします。Negates a value and pushes the result onto the evaluation stack.

public: static initonly System::Reflection::Emit::OpCode Neg;
public static readonly System.Reflection.Emit.OpCode Neg;
 staticval mutable Neg : System.Reflection.Emit.OpCode
Public Shared ReadOnly Neg 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
6565 negneg スタックの現在の上にある値を否定します。Negates the value currently on top of the stack.

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

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

  2. 値はスタックからポップされ、否定されます。A value is popped from the stack and negated.

  3. 結果がスタックにプッシュされます。The result is pushed onto the stack.

@No__t-0 命令は値を否定し、結果をスタックの先頭にプッシュします。The neg instruction negates value and pushes the result on top of the stack. 戻り値の型は、オペランドの型と同じです。The return type is the same as the operand type.

整数値の否定は、標準の2の補数否定です。Negation of integral values is standard two's complement negation. 特に、負の数 (正の値に対応する正の数値) を否定すると、最も負の数値が得られます。In particular, negating the most negative number (which does not have a positive counterpart) yields the most negative number. このオーバーフローを検出するには、代わりに Sub_Ovf 命令を使用します (つまり、0から減算します)。To detect this overflow use the Sub_Ovf instruction instead (that is, subtract from 0).

浮動小数点数を否定することはできません。また、NaN を否定すると NaN が返されます。Negating a floating-point number cannot overflow, and negating NaN returns NaN.

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

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