Check whether K-th bit is set or not

Given a number n, check if k-th bit of n is set or not.

Examples:

Input : n = 5, k = 1
Output : SET
5 is represented as 101 in binary
and has its first bit set.

Input : n = 2, k = 3
Output : NOT SET
2 is represented as 10 in binary, 
all higher i.e. beyond MSB,
bits are NOT SET.

Method 1 (Using Left Shift Operator)
Below are simple steps to find value of k-th bit



1) Left shift given number 1 by k-1 to create 
   a number that has only set bit as k-th bit.
    temp = 1 << (k-1)
2) If bitwise AND of n and temp is non-zero, 
   then result is SET else result is NOT SET.

Example:

 n = 75 and k = 4
 temp = 1 << (k-1) = 1 << 3 = 8 
 Binary Representation of temp = 0..00001000 
 Binary Representation of n = 0..01001011 
 Since bitwise AND of n and temp is non-zero,
 result is SET.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP program to check if k-th bit
// of a given number is set or not
#include <iostream>
using namespace std;
  
void isKthBitSet(int n, int k)
{
    if (n & (1 << (k - 1)))
        cout << "SET";
    else
        cout << "NOT SET";
}
  
// Driver code
int main()
{
    int n = 5, k = 1;
    isKthBitSet(n, k);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to check if k-th bit
// of a given number is set or not
  
class Number {
    public static void isKthBitSet(int n,
                                   int k)
    {
        if ((n & (1 << (k - 1))) == 1)
            System.out.print("SET");
        else
            System.out.print("NOT SET");
    }
  
    // driver code
    public static void main(String[] args)
    {
        int n = 5, k = 1;
        isKthBitSet(n, k);
    }
}
  
// This code is contributed by rishabh_jain

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to check if k-th bit
# of a given number is set or not
  
def isKthBitSet(n, k):
    if n & (1 << (k - 1)):
        print( "SET")
    else:
        print("NOT SET")
  
# Driver code
n = 5
k = 1
isKthBitSet(n, k)
  
# This code is contributed by "Sharad_Bhardwaj".

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to check if k-th bit
// of a given number is set or not.
using System;
  
class GFG {
  
    public static void isKthBitSet(int n,
                                   int k)
    {
        if ((n & (1 << (k - 1))) == 1)
            Console.Write("SET");
        else
            Console.Write("NOT SET");
    }
  
    // Driver code
    public static void Main()
    {
        int n = 5, k = 1;
  
        isKthBitSet(n, k);
    }
}
  
// This code is contributed by nitin mittal.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to check if 
// k-th bit of a given 
// number is set or not
function isKthBitSet($n, $k)
{
    if ($n & (1 << ($k - 1)))
        echo "SET";
    else
        echo "NOT SET";
}
  
// Driver code
$n = 5; $k = 1;
isKthBitSet($n, $k);
  
// This code is contributed 
// by akt_mit
?>

chevron_right



Output:

SET

 

Method 2 (Using Right Shift Operator)
If we right shift n by k-1, we get last bit as 1 if k-th bit is set else 0.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP program to check if k-th bit
// of a given number is set or not using
// right shift operator.
#include <iostream>
using namespace std;
  
void isKthBitSet(int n, int k)
{
    if ((n >> (k - 1)) & 1)
        cout << "SET";
    else
        cout << "NOT SET";
}
  
// Driver code
int main()
{
    int n = 5, k = 1;
    isKthBitSet(n, k);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to check if 
// k-th bit of a given number 
// is set or not using right 
// shift operator.
import java.io.*;
  
class GFG 
{
static void isKthBitSet(int n, 
                        int k)
{
    if (((n >> (k - 1)) &
               1) == 1)
        System.out.println("SET");
    else
        System.out.println("NOT SET");
}
  
// Driver code
public static void main (String[] args) 
{
    int n = 5, k = 1;
    isKthBitSet(n, k);
}
}
  
// This code is contributed
// by ajit

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# PHP program to check if k-th bit of 
# a given number is set or not using
# right shift operator. 
  
def isKthBitSet(n, k): 
    if ((n >> (k - 1)) and 1):
        print("SET")
    else:
        print("NOT SET"
  
# Driver code 
n, k = 5, 1
isKthBitSet(n, k) 
  
# This code contributed by 
# PrinciRaj1992

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to check if 
// k-th bit of a given number 
// is set or not using right 
// shift operator
using System;
  
class GFG
{
static void isKthBitSet(int n, 
                        int k)
{
    if (((n >> (k - 1)) &
              1) == 1)
        Console.WriteLine("SET");
    else
        Console.WriteLine("NOT SET");
}
  
// Driver code
static public void Main ()
{
    int n = 5, k = 1;
    isKthBitSet(n, k);
}
}
  
// This code is contributed
// by ajit

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to check 
// if k-th bit of a given 
// number is set or not 
// using right shift operator.
  
function isKthBitSet($n, $k)
{
    if (($n >> ($k - 1)) & 1)
        echo "SET";
    else
        echo "NOT SET";
}
  
// Driver code
$n = 5; $k = 1;
isKthBitSet($n, $k);
  
// This code is contributed 
// by akt_mit
?>

chevron_right



Output:

SET

This article is contributed by SAKSHI TIWARI. If you like GeeksforGeeks(We know you do!) 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 write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up