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:
- 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 unsetbool 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 aboveint 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 positionimport java.io.*;class GFG { // function to check whether// the bit at given position// is set or unsetstatic 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 unsetimport math#function to check whether the bit# at given position is set or unsetdef 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 coden = 10k = 2if (bitAtGivenPosSetOrUnset(n, k)): print("Set")else: print("Unset")#This code is contributed by Gitanjali |
C#
// C# program to check the set bit// at kth positionusing 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
<?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 unsetfunction 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?> |
Javascript
<script>// javascript program to// check the set bit// at kth position// function to check whether// the bit at given position// is set or unsetfunction bitAtGivenPosSetOrUnset (n, k){ // to shift the kth bit // at 1st position let 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 Function // K and n must be greater than 0 let n = 10, k = 2; if (bitAtGivenPosSetOrUnset(n, k)==1) document.write("Set"); else document.write("Unset"); // This code is contributed by susmitakundugoaldanga.</script> |
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


