# Operators in Hindi

#### Operators in C++

##### 1. Arithmetic Operators
OperatorsExplaination
- (Subtraction)ये right operand से left operand को निकाल देता है |
* (Multiplication)ये दो Operands को multiply करता है |
/ (Division)ये right operand द्वारा left operand को divide करता है |
% (Modulus)ये right operand द्वारा left operand को divide करके remainder निकालता है |

For eg.
Source Code :
```#include <iostream.h>
using namespace std;

int main() {

int a,b,c;

cout<<"Enter two numbers ";
cin>>a>>b;

c=a+b;
cout<<"Addition of a and b is "<<c<<endl;

c=a-b;
cout<<"Subtraction of a and b is "<<c<<endl;

c=a*b;
cout<<"Multiplication of a and b is "<<c<<endl;

c=a/b;
cout<<"Division of a and b is "<<c<<endl;

c=a%b;
cout<<"Remainder of a and b is "<<c<<endl;

return 0;
}
```
Output
```Enter two numbers 5
6
Addition of a and b is 11
Subtraction of a and b is -1
Multiplication of a and b is 30
Division of a and b is 0
Remainder of a and b is 5
```

##### 2. Relational Operators
OperatorsExplaination
< (less than)एक Operand की value दूसरे Operand से कम हो तो ये true return करता है | for eg. num1=5; num2=6;
num1 < num2
> (greater than)एक Operand की value दूसरे Operand से ज्यादा हो तो ये true return करता है | for eg. num1=6; num2=5;
num1 > num2
<= (less than or equal to)एक Operand की value दूसरे Operand से कम हो या बराबर (equal) हो तो ये true return करता है | for eg. num1=5; num2=5;
num1 <= num2
(greater than or equal to)एक Operand की value दूसरे Operand से ज्यादा हो या बराबर (equal) हो तो ये true return करता है | for eg. num1=5; num2=5;
num1 >= num2
== (equal to)दो Operands जब बराबर(equal) होते है, तब ये true return करता है |
!= (not equal to)दो Operands जब एक-दूसरे से अलग होते है, तब ये true return करता है |

For eg.
Source Code :
```#include <iostream.h>
using namespace std;

int main(){

int a=6, b=5;

if(a<b){
cout<<" a is less than b"<<endl;
}
else{
cout<<" a is greater than b"<<endl;
}

if(a<=b){
cout<<" a is less than b"<<endl;
}
else{
cout<<" a is greater than b"<<endl;
}

if(a>b){
cout<<" a is greater than b"<<endl;
}
else{
cout<<" a is less than b"<<endl;
}

if(a>=b){
cout<<" a is greater than b"<<endl;
}
else{
cout<<" a is less than b"<<endl;
}

if(a==b){
cout<<" a is equal to b"<<endl;
}
else{
cout<<" a is not equal to b"<<endl;
}
return 0;
}

```
Output
```a is greater than b
a is greater than b
a is greater than b
a is greater than b
a is not equal to b
```

##### 3. Logical Operators
OperatorsExplaination
&& (logical &&)अगर दोनों conditions true हो तो ये true return करेगा |
for eg. (5<6) && (6>5)
|| (logical OR)अगर दोनों में से एक भी true है , तो ये true return करेगा |
for eg. (5<6) || (6>5)
! (logical not)अगर condition true हो तो ये उसे false कर देता है |
for eg. !((5<6) && (6>5))
!((5<6) || (6>5))

For eg.
Source Code :
```#include <iostream.h>
using namespace std;

int main(){

if((5<6) && (6>5)){
cout<<"Condition is true."<<endl;
}
else{
cout<<"Condition is false.[n"<<endl;
}
if((5<6) || (6>5)){
cout<<"Condition is true."<<endl;
}
else{
cout<<"Condition is false."<<endl;
}
if(!((5<6) && (5>6))){
cout<<"Condition is true."<<endl;
}
else{
cout<<"Condition is false."<<endl;
}
return 0;
}

```
Output
```Condition is true.
Condition is true.
Condition is true.
```

##### 4. Bitwise Operators

Truth Table for &, |, ^
a b a & b a | b a ^ b
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

Operation on AND(a&b)
Decimal ValueBinary Value
अगर a = 20, b = 12 हो तो,
200 0 0 1   0 1 0 0
120 0 0 0   1 1 0 0
40 0 0 0   0 1 0 0

Operation on OR(a|b)
Decimal ValueBinary Value
अगर a = 20, b = 12 हो तो,
200 0 0 1   0 1 0 0
120 0 0 0   1 1 0 0
280 0 0 1   1 1 0 0

Operation on XOR(a^b)
Decimal ValueBinary Value
अगर a = 20, b = 12 हो तो,
200 0 0 1   0 1 0 0
120 0 0 0   1 1 0 0
240 0 0 1   1 0 0 0

#### Binary Left Shift( << ) and Right Shift( >> )

• Left Shift(<<) for e.g. a=20; /* 0001 0100 */ a << 2 में numeric value के binary value में हर binary number को 2 binary numbers left side से shift करता है | for e.g.a=20; /* 0001 0100 */ तो इसका 0101 0000 मतलब 80 हो जायेगा |
• Right Shift(>>) for e.g. a=20; /* 0001 0100 */ ये Left shift से बिलकुल उलट है | Right Shift a>> 2 में numeric value के binary value में हर binary number को 2 binary numbers right side से shift करता है | for e.g.a=20; /* 0001 0100 */ तो इसका 0000 0101 मतलब 5 हो जायेगा |

#### Complement Operator (~)

• ये Operator सारे bit reverse करता है |
• ये Operator 0 को 1 कर देता है और 1 को 0 कर देता है |

Operation on Complement( ~ )
Decimal ValueBinary Value
~120 0 0 0   1 1 0 0
2431 1 1 1   0 0 1 1

##### 2's Complement of 243 -(reverse of 243 in binary + 1)
Operation on 2's Complement( ~ )
Decimal ValueBinary Value2's Complement
2431111 0011-(0000 1100+1) = -(0000 1101) = -13(output)

For eg.
Source Code :
```#include <iostream.h>
using namespace std;

int main() {

int a=20; /* 0001 0100 */
int b=12; /* 0000 1100 */
int c;

c=a&b;
cout<<"value of c is "<<c<<endl; /* 4 = 0000 0100 */

c=a|b;
cout<<"value of c is "<<c<<endl; /* 28 = 0001 1100 */

c=a^b;
cout<<"value of c is "<<c<<endl; /* 24 = 0001 1000 */

c=a<<2;
cout<<"value of c is "<<c<<endl; /* 80 = 0101 0000 */

c=a>>2;
cout<<"value of c is "<<c<<endl; /* 5 = 0000 0101 */

cout<<"value of c is "<<~b<<endl; /* -13 = 1111 0011 */

return 0;
}

```
Output
```value of c is 4
value of c is 28
value of c is 24
value of c is 80
value of c is 5
value of c is -13
```

##### Assignment Operators ग्यारह प्रकार के होते है |
1. Assignment Operator (=)
3. Subtract Assignment Operator (-=)
4. Multiply Assignment Operator (*=)
5. Divide Assignment Operator (/=)
6. Modulus Assignment Operator (%=)
7. Bitwise AND Assignment Operator (&=)
8. Bitwise OR Assignment Operator (|=)
9. Bitwise XOR Assignment Operator (^=)
10. Left Shift Assignment Operator (<<=)
11. Right Shift Assignment Operator (>>=)
OperatorsExamples
= (assignment)c = a + b
+= (add assignment)c += a same as c = c + a
-= (subtract assignment)c -= a same as c = c - a
*= (multiply assignment)c *= a same as c = c * a
/= (divide assignment)c /= a same as c = c / a
%= (modulus assignment)c %= a same as c = c % a
&= (AND assignment)c &= a same as c = c & a
|= (OR assignment)c |= a same as c = c | a
^= (XOR assignment)c ^= a same as c = c ^ a
<<= (Left Shift assignment)c <<= a same as c = c << a
= (Right Shift assignment)c >>= a same as c = c >> a

For eg.
Source Code :
```#include <iostream.h>
using namespace std;

int main() {

int a=20, b=12;

b = a + b;
cout<<"value of b is "<<b<<endl;

b += a;
cout<<"value of b is "<<b<<endl;

b -= a;
cout<<"value of b is "<<b<<endl;

b *= a;
cout<<"value of b is "<<b<<endl;

b /= a;
cout<<"value of b is "<<b<<endl;

b %= a;
cout<<"value of b is "<<b<<endl;

b &= 2;
cout<<"value of b is "<<b<<endl;

b |= 2;
cout<<"value of b is "<<b<<endl;

b ^= 2;
cout<<"value of b is "<<b<<endl;

b <<= 2;
cout<<"value of b is "<<b<<endl;

b >>= 2;
cout<<"value of b is "<<b<<endl;

return 0;
}

```
Output
```value of b is 32
value of b is 52
value of b is 32
value of b is 640
value of b is 32
value of b is 12
value of b is 0
value of b is 2
value of b is 0
value of b is 0
value of b is 0
```

##### 6. Increment (++) and Decrement (--) with Prefix and Postfix
• Increment Operator (++) ये variable की value 1 से बढ़ा देता है |
• Decrement Operator (--) ये variable की value 1 से घटा देता है |
++a (Increment Prefix)a = a + 1
--a (Decrement Prefix)a = a - 1
a++ (Increment Postfix)
a-- (Decrement Postfix)

for eg.
Source Code :
```#include <iostream.h>
using namespace std;

int main() {

int a=20;

cout<<"Print Value with prefix : "<<++a<<endl; // increase value with increment prefix
cout<<"Value of a : "<<a<<endl;
cout<<"Print Value with prefix : "<<--a<<endl; // decrease value with decrement prefix
cout<<"Value of a : "<<a<<endl;
cout<<"Print Value with postfix : "<<a++<<endl; // increase value with increment postfix
cout<<"Value of a : "<<a<<endl;
cout<<"Print Value with postfix : "<<a--<<endl; // decrease value with decrement postfix
cout<<"Value of a : "<<a<<endl;

return 0;
}
```
Output
```Print Value with prefix : 21
Value of a : 21
Print Value with prefix : 20
Value of a : 20
Print Value with postfix : 20
Value of a : 21
Print Value with postfix : 21
Value of a : 20
```

##### 7. Conditional / Ternary Operator (?:)
• Conditional Operator में तीन Expressions होते है |
• Conditional Operator को Ternary Operator भी कहते है |
• Conditional Operator में अगर पहला expression true होता है, तो वो दूसरा expression output में print करता है |
• अगर Conditional Operator में पहला expression false होता है, तो वो तीसरा expression output में print करता है |
##### Syntax for Conditional / Ternary Operator
expression1 ? expression 2 : expression 3

for eg.
Source Code :
```#include <iostream.h>
using namespace std;

int main()
{
int a = 100, b ;
b = ( a == 100 ? 2 : 0 ) ;

cout<<"Value of a is "<<a<<endl;
cout<<"Value of b is "<<b;

return 0;
}
```
Output :
```Value of a is 100
Value of b is 2
```