Ruby supports a wide variety of operators

- Unary Operators
- Arithmetic Operators
- Bitwise Operators
- Logical Operator
- Ternary Operator
- Comparison Operator
- Range Operator

Let us look into each type of operator in detail

## Arithmetic Operator

These operators perform necessary arithmetic operations on the operands. These computations include all the operations that are defined in the table below.

Let x and y be two operands

Operator |
Operation |
Expression |
Description |

+ |
Addition |
a+b |
Returns sum of a & b |

- |
Subtraction |
a-b |
Returns difference of a&b |

/ |
Division |
a/b |
Returns quotient of a&b |

* |
Multiplication |
a*b |
Returns product of a&b |

** |
Exponent |
a**b |
Returns a to the power b |

% |
Modulus |
x%y |
Returns remainder of a&b |

## Comparison Operators

Comparison operators unlike arithmetic operators only compare two values and return true or false as the result

Operator |
Operation |
Expression |
x=y |
x>y |
x<y<y< th=""></y<> |

== |
Equal to |
x == y |
True |
False |
False |

!= |
Not Equal to |
x != y |
False |
True |
True |

<= |
Less than equal to |
x <= y |
True |
False |
True |

>= |
Greater than Equal to |
x >= y |
True |
True |
False |

< |
Less than |
x < y |
False |
False |
True |

> |
Greater than |
x > y |
False |
True |
False |

<==> |
Combined Comparision |
x <==> y |
0 |
1 |
-1 |

## Bitwise Operator

Bitwise operators perform operations on a bit level. After converting the value into binary form, the bitwise operators perform operations on corresponding bits of the operands.

Operator |
Operation |
Expression |
Description |

& |
Bitwise AND |
a&b |
Returns 1 when both corresponding bits are 1 |

| |
Bitwise OR |
a|b |
Returns 1 when either corresponding bits are 1 |

^ |
Bitwise XOR |
a^b |
Returns 0 only when both bits are 1 |

~ |
Compliment |
~a |
Flips all the bits in the binary form of the operand |

<< |
Left Shift |
a<<b< td=""></b<> |
shifts all the bits to the left by one position* |

>> |
Right Shift |
a>>b |
shifts all the bits to the right by one position* |

*In Left/Right shifts the leftmost/rightmost bit is discarded and 0 is inserted towards the other end.

## Ternary Operator

Operator |
Description |

?: |
Conditional expression |