# Check whether the bit at given position is set or unset

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_{10}10)_{2}The 2nd bit from the right is set. Input : n = 21, k = 4 Output : Unset

**Approach:** Following are the steps:

- Calculate
**new_num**= (n >> (k – 1)). - 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 <bits/stdc++.h> ` `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; ` `} ` |

*chevron_right*

*filter_none*

## 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 ` |

*chevron_right*

*filter_none*

## 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 ` |

*chevron_right*

*filter_none*

## 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. ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// PHP implementation to check whether the bit ` `// at given position is set or unset ` ` ` `// function to check whether the bit ` `// at given position is set or unset ` `function` `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` `)) ` ` ` `echo` `"Set"` `; ` ` ` `else` ` ` `echo` `"Unset"` `; ` ` ` `// This code is contributed by Sam007 ` `?> ` |

*chevron_right*

*filter_none*

Output:

Set

Time Complexity: O(1).

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: **DSA Self Paced**. Become industry ready at a student-friendly price.

## Recommended Posts:

- Write an Efficient Method to Check if a Number is Multiple of 3
- Position of rightmost set bit
- Check for Integer Overflow
- Find position of the only set bit
- Check if a number is multiple of 9 using bitwise operators
- Check if binary representation of a number is palindrome
- Check if a given number is sparse or not
- Cyclic Redundancy Check and Modulo-2 Division
- Check if a number is Bleak
- Check whether a given number is even or odd
- Check if a number can be expressed as a sum of consecutive numbers
- Check if bits of a number has count of consecutive set bits in increasing order
- Check if a number has bits in alternate pattern | Set 1
- Check divisibility in a binary stream
- Efficiently check if a string has all unique characters without using any additional data structure
- Check whether K-th bit is set or not
- Check if two numbers are equal without using arithmetic and comparison operators
- Check if two numbers are bit rotations of each other or not
- Check if all bits of a number are set
- Check in binary array the number represented by a subarray is odd or even

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.