# C++ Operators | Find output programs | Set 2

This section contains the C++ find output programs with their explanations on various operators (set 2).
Submitted by Nidhi, on June 01, 2020

Program 1:

```#include <iostream>
using namespace std;

int main()
{
int A = 5, B = 40, C = 0;

C = (A << 2) + (B >> 3);
cout << C;

return 0;
}
```

Output:

```25
```

Explanation:

In the above code, we use the left shift and right shift operators. Now we will understand the easy way how it works in the evaluation of an expression in C++?

We can understand the left shift operator using below statement:

```    = 10 << 3
= 10 * pow(2,3)
= 10 * 8
= 80
```

We can understand the right shift operator using below statement:

```    = 10 >> 3
= 10 / pow(2,3)
= 10 / 8
= 1
```

Now we come to the evaluation of expression mentioned in above code.

```    C   = (A<<2) + (B>>3)
= (5<<2) + (40>>3)
= 5 * pow(2,2) + 40 /pow(2,3)
= 5 * 4 + 40 / 8
= 20 + 5
= 25
```

Then the final value of C is 25.

Program 2:

```#include <iostream>
using namespace std;

int main()
{
int C;

C = (80 >> 5) ? (120 << 3) ? (10 > (5 + 5)) ? 1 : 5 : 10 : 20;
cout << C;

return 0;
}
```

Output:

```5
```

Explanation:

In the above program, we used a nested ternary operator and shift operators, now we evaluate the expression.

```    C   =  (80>>5)?(120<<3)?(10>(5+5))?1:5:10:20
=  (80/pow(2,5)) ? (120*pow(2,3))?(10>10)?1:5:10:20
=  (80/32)?(120*8)?(10>10)?1:5:10:20
=  (2) ? (960)?(10>10)?1:5:10:20
```
• 2 it means the condition is true then
• 960 that is again true
• Then 10>10 that is false then 5 will be returned.

Then the final value of C is 5.

Program 3:

```#include <iostream>
using namespace std;

int main()
{
int A = 10, B = 20, C = 0;

C = A++ + ++B * 10 + B++;
cout << A << "," << B << "," << C;

return 0;
}
```

Output:

```11, 22, 241
```

Explanation:

In the above program, we took 3 local variables A, B, and C that contain the values 10, 20, and 0 respectively. Here we used an expression that contains pre, post-increment, and arithmetic operators, as we know that pre-increment increases the value of the variable before evaluation of the expression, and post-increment increases the value of the variable after evaluation.

Values of A and B before the evaluation of expression due to pre-increment are:

```    A = 10, B = 21
```

Now we evaluate the expression:

```    C   = 10 + 21 * 10 + 21
= 10 +210 +21
= 241
```

Then the value of C is 241. And values of A and B after evaluation of express due to post-increment operator are:

```    A = 11, B = 22
```

Then the final values are: A =11, B= 22, C=241

Note: Compiler dependency may be there.

Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates