Skip to content
Related Articles
Check whether the bit at given position is set or unset
• Difficulty Level : Medium
• Last Updated : 13 Apr, 2021

Given two positive integers n and k. The problem is to check whether the bit at position k from the right in the binary representation of n is set (‘1’) or unset (‘0’).
Constraints: 1 <= k <= number of bits in the binary representation of n.
Examples:

```Input : n = 10, k = 2
Output : Set
(10)10 = (1010)2
The 2nd bit from the right is set.

Input : n = 21, k = 4
Output : Unset```

Approach: Following are the steps:

1. Calculate new_num = (n >> (k – 1)).
2. if (new_num & 1) == 1 then bit is “Set”, else “Unset”.

## C++

 `// C++ implementation to check whether the bit``// at given position is set or unset``#include ``using` `namespace` `std;` `// function to check whether the bit``// at given position is set or unset``bool` `bitAtGivenPosSetOrUnset(unsigned ``int` `n,``                             ``unsigned ``int` `k)``{``    ``int` `new_num = n >> (k - 1);` `    ``// if it results to '1' then bit is set,``    ``// else it results to '0' bit is unset``    ``return` `(new_num & 1);``}` `// Driver program to test above``int` `main()``{``    ``unsigned ``int` `n = 10, k = 2;``    ``if` `(bitAtGivenPosSetOrUnset(n, k))``        ``cout << ``"Set"``;``    ``else``        ``cout << ``"Unset"``;``    ``return` `0;``}`

## Java

 `// Java program to``// check the set bit``// at kth position``import` `java.io.*;` `class` `GFG {``    ` `// function to check whether``// the bit at given position``// is set or unset``static` `int` `bitAtGivenPosSetOrUnset``                   ``( ``int` `n, ``int` `k)``{` `    ``// to shift the kth bit``    ``// at 1st position``    ``int` `new_num = n >> (k - ``1``);`` ` `    ``// Since, last bit is now``    ``// kth bit, so doing AND with 1``    ``// will give result.``    ``return` `(new_num & ``1``);``}``    ``public` `static` `void` `main (String[] args)``    ``{``         ``// K and n must be greater than 0``         ``int` `n = ``10``, k = ``2``;``         ` `    ``if` `(bitAtGivenPosSetOrUnset(n, k)==``1``)``        ``System.out.println(``"Set"``);``    ``else``        ``System.out.println(``"Unset"``);``    ``}``}` `//This code is contributed by Gitanjali`

## Python3

 `# python implementation to check``# whether the bit at given``# position is set or unset` `import` `math``#function to check whether the bit``# at given position is set or unset``def` `bitAtGivenPosSetOrUnset(  n,  k):``     ``new_num ``=` `n >> (k ``-` `1``)`` ` `     ``#if it results to '1' then bit is set,``     ``#else it results to '0' bit is unset``     ``return` `(new_num & ``1``)` `# Driver code``n ``=` `10``k ``=` `2``if` `(bitAtGivenPosSetOrUnset(n, k)):``     ``print``(``"Set"``)``else``:``    ``print``(``"Unset"``)` `#This code is contributed by Gitanjali`

## C#

 `// C# program to check the set bit``// at kth position``using` `System;` `class` `GFG {``    ` `    ``// function to check whether``    ``// the bit at given position``    ``// is set or unset``    ``static` `int` `bitAtGivenPosSetOrUnset(``                           ``int` `n, ``int` `k)``    ``{``    ` `        ``// to shift the kth bit``        ``// at 1st position``        ``int` `new_num = n >> (k - 1);``    ` `        ``// Since, last bit is now``        ``// kth bit, so doing AND with 1``        ``// will give result.``        ``return` `(new_num & 1);``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main ()``    ``{``        ` `        ``// K and n must be greater``        ``// than 0``        ``int` `n = 10, k = 2;``        ` `        ``if` `(bitAtGivenPosSetOrUnset(n, k)==1)``            ``Console.Write(``"Set"``);``        ``else``            ``Console.Write(``"Unset"``);``    ``}``}` `// This code is contributed by Sam007.`

## PHP

 `> (``\$k` `- 1);` `    ``// if it results to '1' then bit is set,``    ``// else it results to '0' bit is unset``    ``return` `(``\$new_num` `& 1);``}` `    ``// Driver Code``    ``\$n` `= 10;``    ``\$k` `= 2;``    ``if` `(bitAtGivenPosSetOrUnset(``\$n``, ``\$k``))``        ``echo` `"Set"``;``    ``else``        ``echo` `"Unset"``;``        ` `// This code is contributed by Sam007``?>`

## Javascript

 ``

Output:

`Set`

Time Complexity: O(1).

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with industry experts, please refer Geeks Classes Live

My Personal Notes arrow_drop_up