Given a number num and a value n, we have to find the value of nth bit from right in the binary representation of that number.

**Introduction to Left shift and Right shift operator**

- The left shift and right shift operators are used to shift the bits of a number either left or right as specified.
- RIGHT SHIFT(>>): it accepts to numbers, and shifts the first number to the right, number of times as specified by the second number. For example,

**Ex-1.** 13>>2 = 3

**Explanation:**

**Binary equivalent of 13** – 1101

Shifting it to the right two times gives 11 which is binary equivalent of 3.

- Shifting a number to right n times, is equivalent to dividing the number by 2n.
- LEFT SHIFT(>>): it accepts to numbers, and shifts the first number to the left, number of times as specified by the second number. For example,

**Ex-2. **13<<2 =52

**Explanation:**

**Binary equivalent of 13** – 1101

Shifting it to the left two times gives 110100 which is binary equivalent of 52.

#### Shifting a number to left n times, is equivalent to multiplying the number by 2n.

**# Approaching the problem**

- To access the nth bit from right, we can keep dividing the number by 2, n times and then the remainder is our answer. But this approach is lengthy as we would have to write while loop.
- Instead we can solve this in one step, we would shift the bits of the number by n-1, so that the bit we wish to obtain is now the last bit of the number. Now we will make all the bits of the number 0 except the last bit (it will retain its value) by taking bitwise and with 1.

**# Algorithm**

- Input the values of num and n.
- Shift num to right n-1 times.
- Take bitwise and with 1 and the result is our answer.

**Code**

```
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
int num, n;
cout << "Enter number\n";
cin >> num;
cout << "Enter bit number you wish to obtain\n";
cin >> n;
cout << "Answer:" << (1 &(num >> (n - 1)));
}
```

**Output:**

```
Enter Number
2345
Enter bit number you wish to obtain
6
Answer:1
```

Binary equivalent of 2345: 100100101001

Report Error/ Suggestion