This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: "Unary operation" – news · newspapers · books · scholar · JSTOR (March 2010) (Learn how and when to remove this template message)

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.

Obtaining the absolute value of a number is a unary operation. This function is defined as ^{[3]} where is the absolute value of .

This is used to find the negative value of a single number. Here are some examples:

For any positive integer *n*, the product of the integers less than or equal to *n* is a unary operation called factorial. In the context of complex numbers, the gamma function is an unary operation extension of factorial.

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:^{[4]}

- 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:^{[5]}^{[6]}

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