Skip to content
Related Articles

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 <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). 
 

 

My Personal Notes arrow_drop_up
Recommended Articles
Page :