# Unary Negation Operator: -

**Visual Studio .NET 2003**

**Grammar**

*unary-expression:***-***cast-expression*

The unary negation operator (**–**) produces the negative of its operand. The operand to the unary negation operator must be an arithmetic type.

Integral promotion is performed on integral operands, and the resultant type is the type to which the operand is promoted. See Integral Promotions for more information on how the promotion is done.

**Microsoft Specific**

Unary negation of unsigned quantities is performed by subtracting the value of the operand from 2^{n}, where *n* is the number of bits in an object of the given unsigned type. (Microsoft C++ runs on processors that utilize two's-complement arithmetic. On other processors, the algorithm for negation can differ.)

**END Microsoft Specific**

#### See Also

Expressions with Unary Operators | C++ Operators | Operator Precedence and Associativity