Skip to content
Related Articles

Related Articles

Improve Article
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 <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;
}

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




<?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
?>

Javascript




<script>
 
// javascript program to
// check the set bit
// at kth position
 
// function to check whether
// the bit at given position
// is set or unset
function 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




My Personal Notes arrow_drop_up
Recommended Articles
Page :