Performs a bitwise NOT (negation) on an expression.

`~ expression` |

# Arguments

*expression*-
Any numeric expression.

# Remarks

The **~** operator looks at the binary representation of the values of the expression and does a bitwise negation operation on it. The result of this operation behaves as follows:

В | Copy Code |
---|---|

0101 (expression) ---- 1010 (result) |

Any digit that is a 1 in the expression becomes a 0 in the result. Any digit that is a 0 in the expression becomes a 1 in the result.

When the **~** operator acts on an operand of an integral data type, it performs no coercion and returns a value of the same data type as the operand. When the operand is of a non-integral data type, the value is coerced to type **int **before the operation is performed, and the return value of the operator is of type **int**.