CPP Operators are symbols which tells the compiler to perform either mathematical or logical operation on the variables or a value. C++ language supports rich set of built-in operators.

Assignment CPP Operators

*assigns values*

to variables.Below is the list of Assignment Operators. Operator | Description | Example |
---|---|---|

= | Assignment Operator: Assigns right-hand side(called rvalue)to left-hand side(called lvalue) | z=x+y assigns value of x+y into z |

+= | Add AND Assignment Operator: Adds right operand to left operand and assigns result to left operand | y+=x is equivalent to x=y+x |

-= | Subtract AND Assignment Operator: Subtracts right operand from left operand and assigns result to left operand | y-=x is equivalent to y=y-x |

*= | Multiply AND Assignment Operator: Multiplies right operand from left operand and assigns result to left operand | y*=x is equivalent to x=y*x |

/= | Divide AND Assignment Operator: Divides right operand from left operand and assigns result to left operand | y/=x is equivalent to x=y/x |

%= | Modulus AND Assignment Operator: Takes modulus using two operands and assigns result to left operand | y%=x is equivalent to x=y%x |

<<= | Left shift AND Assignment Operator | y<<=2 is same as y=y<<2 |

>>= | Right shift AND Assignment Operator | y>>=2 is same as y=y>>2 |

&= | Bitwise AND Assignment Operator | y&=2 is same as y=y&2 |

^= | Bitwise Exclusive OR and Assignment Operator | y^=2 is same as y=^2 |

|= | Bitwise Inclusive OR and Assignment Operator | y|=2 is same as y=y|2 |

#include <iostream> using namespace std; int main () { int x,y; x=5; y=7; x=y; y=9; cout<< "x="<<x<<endl; cout<< "y="<< y<<endl; }

**Output:**

x=7 y=9

Arithmetic operators performs

*mathematical calculations*

like addition, subtraction, multiplication, division, and modulus. Suppose x=10 and y=20. Operator | Description | Example |
---|---|---|

+ | Adds two operands | x+y gives 30 |

– | Subtracts second operand from the first | x-y gives -10</td |

* | Multiplies operands | x*y gives 200 |

/ | Divide numerator by denominator | x/y gives 2 |

% | Modulus operator gives remainder after an integer division | y%x gives 0 |

++ | Increment operator: Increases integer value by one | x++ gives 11 |

— | Decrement operator: Decreases integer value by one | x– gives 9 |

#include <iostream> using namespace std; int main() { int a = 50; int b = 25; int c ; c = a + b; cout <<"Addition of a and b:"<<c << endl ; c = a - b; cout << "Subtraction of a and b:"<< c << endl ; c = a * b; cout << "multiplication of a and b "<< c << endl ; c = a / b; cout<< "division of a and b " << c<<endl ; c = a % b; cout<< "modular division of a and b "<< c &<< endl ; c = a++; cout << "Incrementing a gives " <<c << endl ; c = a--; cout << "Decrementing a gives " << c << endl ; return 0; }

**Output:**

Addition of a and b:75 Subtraction of a and b:25 multiplication of a and b 1250 division of a and b 2 modular division of a and b 0 Incrementing a gives 50 Decrementing a gives 51

RelationalÂ operators can be used to

*compare*

two variables. Below is the list of Relational Operators in C++.Operator | Description |
---|---|

== | Checks if the value is equal or not, if yes then returns true |

!= | Checks if the value is equal or not, if values are not equal then condition becomes true |

> | Checks for greater value |

< | Checks for lower value |

>= | Checks if the value is greater than or equal to the value |

<= | Checks if the value is less than or equal to the value |

#include <iostream> using namespace std; int main() { int x= 50; int y = 10; int z ; if( x == y ) { cout << " x is equal to y" << endl ; } else { cout << "x is not equal to y" << endl ; } if ( a < b ) { cout << " x is less than y" << endl ; } else { cout << "x is not less than y" << endl ; } if ( x > y ) { cout << "x is greater than y" << endl ; } else { cout << "x is not greater than y" << endl ; } if ( x<= y ) { cout << "x is either less than or euqal to y" << endl ; } if ( y>= x) { cout << "y is either greater than or equal to x" << endl ; } return 0; }

**Output:**

x is not equal to y x is not less than y x is greater than y

Bitwise operators are used to

*convert values*

into binary digits. Shift operator also comes under Bitwise operator because the shift is done in terms of bits.
**Shift Operator:Â **It is used to shift the values to either left or right.

**(i)Left -Shift Operator:** ItÂ moves the bits to the left by adding zeros at the right end. It can be represented byÂ “`<<`”

**(ii)Right-Shift Operator: ** It moves the bits to right by adding zeros at the left end. Here, if the value is unsigned it fills all the bit memory with zeros until the left most bit. If the value is signed, operator assigns one bit for sign and fills other bits with zeros. It is represented by “`>>`“

Operator | Symbol | Form | Operation |
---|---|---|---|

Right shift | >> | x>>y | all bits in x shifted right y bits |

Left shift | << | x<<y | all bits in x shifted left y bits |

Bitwise AND | & | x&y | each bit in x AND each bit in y |

Bitwise OR | | | x|y | each bit in x OR each bit in y |

Bitwise XOR | ^ | x^y | each bit in x XOR each bit in y |

Bitwise NOT | ~ | ~x | all bits in x flipped |

#include<iostream> using namespace std; int main() { int x = 10; // x=1010 int y = 7; // y=0111 cout << "x & y = " << (x&y) << "\n"; cout << "x | y = " << (x|y) << "\n"; cout << "x ^ y = " << (x^y) << "\n"; cout << "~x = " << (~x) << "\n"; cout << "~y = " << (~y) << "\n"; cout << "x >> y = " << (x>>y) << "\n"; cout << "x << y = " << (x<<y) << "\n"; }

**Output:**

x & y = 2 x | y = 15 x ^ y = 13 ~x = -11 ~y = -8 x >> y = 0 x << y = 1280

Logical operators performs

*logical operations*

on given expressions. Below is the list of logical operators. Operator | Name of Operator | Output |
---|---|---|

&& | AND Operator | Output is 1 only when conditions on both sides of operator becomes true |

|| | OR Opeator | Output is 0 only when conditions on both sides of operator becomes false |

! | NOT Operator | Gives inverted output |

#include<iostream> using namespace std; int main() { int a=30; int b=20; if(a>=30 || b>=40) cout<<"OR Block is executed"<<endl; if(a>=20 && b>=20) cout<<"AND Block is executed"<<endl; if(!(a>=50)) cout<<"NOT Block is executed"<<endl; return 0; }

**Output:**

OR Block is executed AND Block is executed NOT Block is executed

Some other operators in C++ are given below.

Operator | Name | Description |
---|---|---|

sizeof | Size of Operator | Returns the size of a variable |

Condition ? X : Y | Conditional Operator | Checks the condition. If the condition is true, then it returns value X, otherwise value Y</td |

& | Pointer Operator | Returns the address of a variable |

* | Pointer Operator | Points to a variable |

, | Comma Operator | Makes sequence of operations |

.(dot) and ->(arrow) | Member Operator | Used to refer “Classes, Structures and Unions” |

Cast | Casting Operator | Convert one data type to another |

#include <iostream> using namespace std; int main () { int x, y = 10,z=20,a,b, c=10.5; x = (y < 10) ? 30 : 40; a=sizeof(z); b = (int) c; cout << "value of x: " << x << endl; cout << "size of y is " << a << endl; cout << "casting of c variable gives " << b << endl; return 0; }

**Output:**

value of x: 40 size of y is 4 casting of c variable gives 10

- CPP Operators performs “Mathematical and Logic Operations”
- “Arithmetic, Assignment, Relational, Increment and Decrement, Logical, Bitwise, Conditional” are few types of CPP Operators.

Tips

- Other than variable identifier, do not use increment and decrement CPP Operators with any expression
- Do not use variable without assigning any value to it
- Do not confuse between equality operator == with assignment operator =