Export (0) Print
Expand All
Expand Minimize

OpCodes.Neg Field

Negates a value and pushes the result onto the evaluation stack.

[Visual Basic]
Public Shared ReadOnly Neg As OpCode
[C#]
public static readonly OpCode Neg;
[C++]
public: static OpCode Neg;
[JScript]
public static var Neg : OpCode;

Remarks

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
65 neg 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.

The neg instruction negates value and pushes the result on top of the stack. The return type is the same as the operand type.

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. To detect this overflow use the Sub_Ovf instruction instead (that is, subtract from 0).

Negating a floating-point number cannot overflow, and negating NaN returns NaN.

The following Emit constructor overload can use the neg opcode:

  • ILGenerator.Emit(OpCode)

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also

OpCodes Class | OpCodes Members | System.Reflection.Emit Namespace

Show:
© 2015 Microsoft