DEV Community

Cover image for Operators and Expression
Zaynul Abedin Miah
Zaynul Abedin Miah

Posted on • Edited on

Operators and Expression

Arithmetic Operators

Arithmetic Operators in C++ are used to perform arithmetic or mathematical operations on the operands. For example, ‘+’ is used for addition, ‘–‘ is used for subtraction, ‘*’ is used for multiplication, etc. In simple terms, arithmetic operators are used to perform arithmetic operations on variables and data; they follow the same relationship between an operator and an operand.

// C++ program to execute all 5
// arithmetic function

#include <iostream>
using namespace std;

int main()
{
    int a, b;
    a = 10;
    b = 3;

    // printing the sum of a and b
    cout<< "a + b= " << (a + b) << endl;

    // printing the difference of a and b
    cout << "a - b = " << (a - b) << endl;

    // printing the product of a and b
    cout << "a * b = " << (a * b) << endl;

    // printing the division of a by b
    cout << "a / b = " << (a / b) << endl;

    // printing the modulo of a by b
    cout << "a % b = " << (a % b) << endl;

    return 0;
}


Enter fullscreen mode Exit fullscreen mode

Output:
a + b = 13
a - b = 7
a * b = 30
a / b = 3
a % b = 1

Assignment Operators

Assignment operators are used to assigning value to a variable.
Different types of assignment operators are shown below:

  • “=”: This is the simplest assignment operator. This operator is used to assign the value on the right to the variable on the left.

  • “+=”: This operator is combination of ‘+’ and ‘=’ operators. This operator first adds the current value of the variable on left to the value on the right and then assigns the result to the variable on the left.

  • “-=”This operator is combination of ‘-‘ and ‘=’ operators. This operator first subtracts the current value of the variable on left from the value on the right and then assigns the result to the variable on the left.

  • =”This operator is combination of ‘’ and ‘=’ operators. This operator first multiplies the current value of the variable on left to the value on the right and then assigns the result to the variable on the left.

  • “/=”This operator is combination of ‘/’ and ‘=’ operators. This operator first divides the current value of the variable on left by the value on the right and then assigns the result to the variable on the left.

Example:

#include <iostream>
using namespace std;

int main() 
{ 

    // Assigning value 10 to a 
    // using "=" operator 
    int a = 10; 
    cout << "Value of a is "<<a<<"\n"; 

    // Assigning value by adding 10 to a 
    // using "+=" operator 
    a += 10; 
    cout << "Value of a is "<<a<<"\n"; 

    // Assigning value by subtracting 10 from a 
    // using "-=" operator 
    a -= 10; 
    cout << "Value of a is "<<a<<"\n"; 

    // Assigning value by multiplying 10 to a 
    // using "*=" operator 
    a *= 10; 
    cout << "Value of a is "<<a<<"\n"; 

    // Assigning value by dividing 10 from a 
    // using "/=" operator 
    a /= 10; 
    cout << "Value of a is "<<a<<"\n"; 

    return 0; 
}
Enter fullscreen mode Exit fullscreen mode

Output:
Value of a is 10
Value of a is 20
Value of a is 10
Value of a is 100
Value of a is 10

Increment and Decrement

The increment operator ++ adds 1 to its operand, and the decrement operator -- subtracts 1 from its operand. So, x = x+1; is the same as x++; And similarly, x = x-1; is the same as x--.

Example:

int a = 10;
int b = 3;

cout<<"Increment Decrement Operators" <<endl;
++a;
++b;

cout << "A " << a << endl;
cout << "B " << b << endl;

int x = 10;
int y = x++;
cout <<"X , Y "<<x<<","<<y <<endl;
int z = ++x;
cout <<"X, Z " << x <<", "<<z <<endl;
Enter fullscreen mode Exit fullscreen mode

Output:
A 11
B 2
X , Y 11,10
X, Z 12,12

Relational Operators

A relational operator is used to check the relationship between two operands. For example,
Example:

int a = 10;
int b = 3;
cout << "Relational Operators" <<endl;
cout << (a>b) <<endl; 
Enter fullscreen mode Exit fullscreen mode

Output:
1

Here, > is a relational operator. It checks if a is greater than b or not.

If the relation is true, it returns 1 whereas if the relation is false, it returns 0.

The following table summarizes the relational operators used in C++.

Image description

Logical Operators

Image description

Truth Table of && Operator
Let a and b be two operands. 0 represents false while 1 represents true. Then,
Image description

Example:

// C++ program demonstrating && operator truth table

#include <iostream>
using namespace std;

int main() {
    int a = 5;
    int b = 9;
    // true && false = false
    cout << ((a == 5) && (a > b)) << endl;

    // true && true = true
    cout << ((a == 5) && (a < b)) << endl;

    return 0;
}
Enter fullscreen mode Exit fullscreen mode

Output:
0
1

OR Operator
Truth Table of || Operator

Image description

Example:
// C++ program demonstrating || operator truth table

include

using namespace std;

int main() {
int a = 5;
int b = 9;

// false && false = false
cout << ((a == 0) || (a > b)) << endl;

// false && true = true
cout << ((a == 0) || (a < b)) << endl;

// true && false = true
cout << ((a == 5) || (a > b)) << endl;

// true && true = true
cout << ((a == 5) || (a < b)) << endl;

return 0;
Enter fullscreen mode Exit fullscreen mode

}

**Output:**
`0
1
1
1`

**NOT Operator !**
Reverse the result, returns false if the result is true.

**Example:**

Enter fullscreen mode Exit fullscreen mode

// C++ program demonstrating ! operator truth table

include

using namespace std;

int main() {
int a = 5;

// !false = true
cout << !(a == 0) << endl;

// !true = false
cout << !(a == 5) << endl;

return 0;
Enter fullscreen mode Exit fullscreen mode

}



**Output:**
`1
0`

## Bitwise Operators

**Binary And &**
It takes two numbers as operands and does AND on every bit of two numbers. The result of AND is 1 only if both bits are 1.  
_Rules:_
0 & 0 = 0
1 & 0 = 0
0 & 1 = 0
1 & 1 = 1

**Binary OR |**
It takes two numbers as operands and does OR on every bit of two numbers. The result of OR is 1 if any of the two bits is 1.
_Rules:_
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
1 | 1 = 1

**Binary XOR ^ (Exclusive OR)**
It takes two numbers as operands and does XOR on every bit of two numbers. The result of XOR is 1 if the two bits are different.
_Rules:_
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0

**Binary Not ~**
It takes one number and inverts all bits of it.
~0 = 1
~1 = 0 

**Binary Left Shift**It takes two numbers, left shifts the bits of the first operand, the second operand decides the number of places to shift. 

Enter fullscreen mode Exit fullscreen mode

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Heroku

This site is powered by Heroku

Heroku was created by developers, for developers. Get started today and find out why Heroku has been the platform of choice for brands like DEV for over a decade.

Sign Up

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay