# Operators in C++ – Part 2

Written by

In the previous chapter, we looked upon the ** Arithmetic, Assignment **and

**.**

*Relational Operators*Now we will take a look at the ** Logical, Bitwise **and

**, in this chapter.**

*Miscellaneous Operators***Logical Operators:**

Following logical operators are supported by C++ language. Here we have assumed that A holds 1 while B holds 0.

Operator |
Description |
Example |

&& | AND Operator, returns true if both the operands are non zero |
A && B will give False |

|| | OR Operator, returns true if either of the operands are non zero |
A || B will give True |

! | NOT Operator, negates the value of the operand | !A will give False
!B will give True |

**Bitwise Operators:**

Bitwise Operators work on bit level and **perform operations on a ***bit by bit*** basis**, now if we assume A = 60 and B = 13, then the binary representation of these are as follows:

A= 00111100

B=00001101

Now, the *Bitwise Operators* in C++ will produce the following results as shown:

Operator |
Description |
Example |

& | Binary AND, copies a bit if it is in both operands | (A & B) will give 12 i.e. 00001100 |

| | Binary OR, copies a bit if it is in either operand | (A | B) will give 61 i.e. 00111101 |

^ | Binary XOR, copies a bit if it is set in one operand | (A ^ B) will give 49 i.e. 00110001 |

~ | Binary Ones, complements the bits | ~A will give -61 i.e. 11000011 in 2’s complement due to signed binary number |

<< | Binary left shift operator, the left operand’s value is moved left by the number of bits specified | A<<2 will give 240 i.e. 11110000 |

>> | Binary right shift operator, the left operand’s value is moved right by the number of bits specified. | A>>2 will give 15 i.e. 00001111 |

**Miscellaneous Operators:**

There are some Miscellaneous Operators offered by the C++, these are as follows.

Here, A and B are two *integer variables* with values 20 and 10 respectively.

Operator |
Description |
Example |

sizeof | Returns the size of the specified variable | sizeof(A) will return 4 |

Cond?X:Y | Conditional Operator, returns X if the condition is true and Y if it is false | A>B?A:B will return A |

, | Comma Operator, is used to separate variables, expressions, etc. | int A,B; |

*Note:*

The ** Conditional Operator** is the only

**ternary operator**in C++ as it requires three operands to act upon.

This operator also acts as a substitute for the **if-else statements.** We will learn about them later on.