# Get Nth bit in C++

Written by

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