Open In App
Related Articles

Algorithms | Bit Algorithms | Question 2

Improve Article
Improve
Save Article
Save
Like Article
Like

What does the following C expression do? x = (x<<1) + x + (x>>1);

(A)

Multiplies an integer with 7

(B)

Multiplies an integer with 3.5

(C)

Multiplies an integer with 3

(D)

Multiplies an integer with 8



Answer: (B)

Explanation:

In the expression: x = (x<<1) + x + (x>>1);
(x<< 1) means left shift x by 1, by doing this we get, x*2.
(x>>1) means right shift x by 1, by doing this we get, x/2

After solving the above expression, we get
=x*2 + x + x/2 
= 3*x +x/2
=7x/2
=3.5*x,  Hence x is a multiple of 3.5
The expression multiplies an integer with 3.5.  See for more details: https://www.geeksforgeeks.org/multiply-an-integer-with-3-5/

Hence Option(B) is correct.


Quiz of this Question
Please comment below if you find anything wrong in the above post

Last Updated : 01 Jun, 2021
Like Article
Save Article
Similar Reads