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 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.
Below is a table summarizing common unary operators along with their symbols, description, and examples:^{[3]}
Operator  Symbol  Description  Example 

Increment  ++ 
Increases the value of a variable by 1  x = 2; ++x; // x is now 3

Decrement  − 
Decreases the value of a variable by 1  y = 10; y; // y is now 9

Unary Plus  + 
Indicates a positive value  a = 5; b = +a; // b is 5

Unary Minus   
Indicates a negative value  c = 4; d = c; // d is 4

Logical NOT  ! 
Negates the truth value of a boolean expression  flag = true; result = !flag; // result is false

Bitwise NOT  ~ 
Bitwise negation, flips the bits of an integer  num = 5; result = ~num; // result is 6

In JavaScript, these operators are unary:^{[4]}
++x
, x++
x
, x
+x
x
~x
!x
In the C family of languages, the following operators are unary:^{[5]}^{[6]}
++x
, x++
x
, x
&x
*x
+x
x
~x
!x
sizeof x, sizeof(typename)
(typename) castexpression
In the Unix shell (Bash/Bourne Shell), e.g., the following operators are unary:^{[7]}^{[8]}
++$x
, $x++
$x
, $x
+$x
$x
!$x
$x
${#x}
In the PowerShell, the following operators are unary:^{[9]}