# Operators in Ruby

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
== 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< 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