# Erlang - Operators

An operator is a symbol that tells the compiler to perform specific mathematical or logical manipulations.

Erlang has the following type of operators −

- Arithmetic operators
- Relational operators
- Logical operators
- Bitwise operators

## Arithmetic Operators

Erlang language supports the normal Arithmetic operators as any the language. Following are the Arithmetic operators available in Erlang.

Operator | Description | Example |
---|---|---|

+ | Addition of two operands | 1 + 2 will give 3 |

− | Subtracts second operand from the first | 1 - 2 will give -1 |

* | Multiplication of both operands | 2 * 2 will give 4 |

/ | Division of numerator by denominator | 2 / 2 will give 1 |

rem | Remainder of dividing the first number by the second | 3 rem 2 will give 1 |

div | The div component will perform the division and return the integer component. | 3 div 2 will give 1 |

## Relational Operators

The Relational Operators allow the comparison of objects. Following are the relational operators available in Erlang.

Operator | Description | Example |
---|---|---|

== | Tests the equality between two objects | 2 = 2 will give true |

/= | Tests the difference between two objects | 3 /= 2 will give true |

< | Checks to see if the left object is less than the right operand. | 2 < 3 will give true |

=< | Checks to see if the left object is less than or equal to the right operand. | 2 =<3 will give true |

> | Checks to see if the left object is greater than the right operand. | 3 > 2 will give true |

>= | Checks to see if the left object is greater than or equal to the right operand. | 3 >= 2 will give true |

## Logical Operators

These Logical Operators are used to evaluate Boolean expressions. Following are the logical operators available in Erlang.

Operator | Description | Example |
---|---|---|

or | This is the logical “or” operator | true or true will give true |

and | This is the logical “and” operator | True and false will give false |

not | This is the logical “not” operator | not false will give true |

xor | This is the logical exclusive “xor” operator | True xor false will give true |

## Bitwise Operators

Erlang provides four bitwise operators. Following are the bitwise operators available in Erlang.

S.No. | Operator & Description |
---|---|

1 |
This is the bitwise “and” operator |

2 |
This is the bitwise “or” operator |

3 |
This is the bitwise “xor” or Exclusive or operator |

4 |
This is the bitwise negation operator |

Following is the truth table showcasing these operators −

p | q | p & q | p | q | p ^ q |
---|---|---|---|---|

0 | 0 | 0 | 0 | 0 |

0 | 1 | 0 | 1 | 1 |

1 | 1 | 1 | 1 | 0 |

1 | 0 | 0 | 1 | 1 |

## Operator Precedence

The following table shows the Operator Precedence for the Erlang operators in order of descending priority together with their associativity. Operator precedence and associativity are used to determine the evaluation order in un-parenthesized expressions.

Operators | Associativity |
---|---|

: | |

# | |

bnot,not | |

/,*,div,rem,band,and | Left associative |

+,-,bor,bxor,or,xor | Left associative |

==,/=,=<,<,>=,> |