# Unary operation

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

{{ safesubst:#invoke:Unsubst||$N=Refimprove |date=__DATE__ |$B= {{#invoke:Message box|ambox}} }} In mathematics, a unary operation is an operation with only one operand, i.e. a single input. An example is the function $f:\ A\to A$ , where A is a set. The function f is a unary operation on A.

Common notations are prefix notation (e.g. +, −, not), postfix notation (e.g. factorial n!), functional notation (e.g. sin x or sin (x)), and superscripts (e.g. transpose AT). Other notations exist as well. For example, in the case of the square root, a horizontal bar extending the square root sign over the argument can indicate the extent of the argument.

## Unary negative and positive

As unary operations have only one operand they are evaluated before other operations containing them {{ safesubst:#invoke:Unsubst||date=__DATE__ |$B= {{#invoke:Category handler|main}}{{#invoke:Category handler|main}}[citation needed] }}. Here is an example using negation: 3 − −2 Here the first '−' represents the binary subtraction operation, while the second '−' represents the unary negation of the 2 (or '−2' could be taken to mean the integer −2). Therefore, the expression is equal to: 3 − (−2) = 5 Technically there is also a unary positive but it is not needed since we assume a value to be positive: (+2) = 2 Unary positive does not change the sign of a negative operation: (+(−2)) = (−2) In this case a unary negative is needed to change the sign: (−(−2)) = (+2) ## Examples from Programming Languages ### C family of languages In the C family of languages, the following operators are unary: • Increment: ++x, x++ • Decrement: −−x, x−− • Address: &x • Indirection: *x • Positive: +x • Negative: −x • One's complement: ~x • Logical negation: !x • Sizeof: sizeof x, sizeof(type-name) • Cast: (type-name) cast-expression ### Unix Shell (Bash) In the Unix/Linux shell (bash/sh), '$' is a unary operator when used for parameter expansion, replacing the name of a variable by its (sometimes modified) value. For example:

• Simple expansion: $x • Complex expansion: ${#x}

### Other languages

#### Windows PowerShell

• Increment: ++$x,$x++
• Decrement: −−$x,$x−−
• Positive: +$x • Negative: −$x
• Logical negation: -not $x • Invoke in current scope: .$x
• Invoke in new scope: &\$x
• Cast: [type-name] cast-expression