KNOWPIA
WELCOME TO KNOWPIA

In mathematics, a **unary operation** is an operation with only one operand, i.e. a single input.^{[1]} This is in contrast to binary operations, which use two operands.^{[2]} An example is any function *f* : *A* → *A*, where *A* is a set. The function *f* is a unary operation on *A*.

Common notations are prefix notation (e.g. ¬, −), postfix notation (e.g. factorial *n*!), functional notation (e.g. sin *x* or sin(*x*)), and superscripts (e.g. transpose *A*^{T}). 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.

As unary operations have only one operand they are evaluated before other operations containing them. 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 + operation but it is not needed since we assume a value to be positive:

- +2 = 2

The unary + operation does not change the sign of a negative operation:

- +(−2) = −2

In this case, a unary negation is needed to change the sign:

- −(−2) = +2

In trigonometry, the trigonometric functions, such as , , and , can be seen as unary operations. This is because it is possible to provide only one term as input for these functions and retrieve a result. By contrast, binary operations, such as addition, require two different terms to compute a result.

In Javascript, these operators are unary:^{[3]}

- Increment:
`++x`

,`x++`

- Decrement:
`−−x`

,`x−−`

- Positive:
`+x`

- Negative:
`−x`

- Ones' complement:
`~x`

- Logical negation:
`!x`

In the C family of languages, the following operators are unary:^{[4]}^{[5]}

- Increment:
`++x`

,`x++`

- Decrement:
`−−x`

,`x−−`

- Address:
`&x`

- Indirection:
`*x`

- Positive:
`+x`

- Negative:
`−x`

- Ones' complement:
`~x`

- Logical negation:
`!x`

- Sizeof:
`sizeof x, sizeof(type-name)`

- Cast:
`(`

*type-name*)*cast-expression*

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}`

**^**Weisstein, Eric W. "Unary Operation".*mathworld.wolfram.com*. Retrieved 2020-07-29.**^**Weisstein, Eric W. "Binary Operation".*mathworld.wolfram.com*. Retrieved 2020-07-29.**^**"Unary Operators".**^**"Chapter 5. Expressions and Operators".*C/C++ Language Reference*.*www-01.ibm.com*. Version 6.0. p. 109. Archived from the original on 2012-10-16.**^**"Unary Operators - C Tutorials - Sanfoundry".*www.sanfoundry.com*.

- Media related to Unary operations at Wikimedia Commons