In mathematics, a unary operation is an operation with only one operand, i.e. a single input. This is in contrast to binary operations, which use two operands. An example is any function , where is a set; the function is a unary operation on .
Common notations are prefix notation (e.g. ì, âÂÂ), postfix notation (e.g. factorial ), functional notation (e.g. or ), and superscripts (e.g. transpose ). 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.
Examples
Absolute value
Obtaining the absolute value of a number is a unary operation. This function is defined as where is the absolute value of .
Negation
Negation is used to find the negative value of a single number. Here are some examples:
Factorial
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 a unary operation extension of factorial.
Trigonometry
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.
Examples from programming languages
Below is a table summarizing common unary operators along with their symbols, description, and examples:
JavaScript
In JavaScript, these operators are unary:
- Increment: <code>++<span style="color:gray;">x</span></code>, <code><span style="color:gray;">x</span>++</code>
- Decrement: <code>--<span style="color:gray;">x</span></code>, <code><span style="color:gray;">x</span>--</code>
- Positive: <code>+<span style="color:gray;">x</span></code>
- Negative: <code>-<span style="color:gray;">x</span></code>
- Ones' complement: <code>~<span style="color:gray;">x</span></code>
- Logical negation: <code>!<span style="color:gray;">x</span></code>
C family of languages
In the C family of languages, the following operators are unary:
- Increment: <code>++<span style="color:gray;">x</span></code>, <code><span style="color:gray;">x</span>++</code>
- Decrement: <code>--<span style="color:gray;">x</span></code>, <code><span style="color:gray;">x</span>--</code>
- Address: <code>&<span style="color:gray;">x</span></code>
- Indirection: <code>*<span style="color:gray;">x</span></code>
- Positive: <code>+<span style="color:gray;">x</span></code>
- Negative: <code>-<span style="color:gray;">x</span></code>
- Ones' complement: <code>~<span style="color:gray;">x</span></code>
- Logical negation: <code>!<span style="color:gray;">x</span></code>
- Sizeof: <code>sizeof <span style="color:gray;">x</span>, sizeof(<span style="color:gray;">type-name</span>)</code>
- Cast: <code>(type-name) <span style="color:gray;">cast-expression</span></code>
Unix shell (Bash)
In the Unix shell (Bash/Bourne Shell), e.g., the following operators are unary:
- Pre and Post-Increment: <code>++<span style="color:gray;">$x</span></code>, <code><span style="color:gray;">$x</span>++</code>
- Pre and Post-Decrement: <code>--<span style="color:gray;">$x</span></code>, <code><span style="color:gray;">$x</span>--</code>
- Positive: <code>+<span style="color:gray;">$x</span></code>
- Negative: <code>-<span style="color:gray;">$x</span></code>
- Logical negation: <code>!<span style="color:gray;">$x</span></code>
- Simple expansion: <code>$<span style="color:gray;">x</span></code>
- Complex expansion: <code>${#<span style="color:gray;">x</span>}</code>
PowerShell
In the PowerShell, the following operators are unary:
- Increment: <code>++<span style="color:gray;">$x</span></code>, <code><span style="color:gray;">$x</span>++</code>
- Decrement: <code>--<span style="color:gray;">$x</span></code>, <code><span style="color:gray;">$x</span>--</code>
- Positive: <code>+<span style="color:gray;">$x</span></code>
- Negative: <code>-<span style="color:gray;">$x</span></code>
- Logical negation: <code>!<span style="color:gray;">$x</span></code>
- Invoke in current scope: <code>.<span style="color:gray;">$x</span></code>
- Invoke in new scope: <code>&<span style="color:gray;">$x</span></code>
- Cast: <code>[type-name] <span style="color:gray;">cast-expression</span></code>
- Cast: <code>+<span style="color:gray;">$x</span></code>
- Array: <code>,<span style="color:gray;">$array</span></code>
See also
References
External links