Given a number n, check if the Kth bit of n is set or not.
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 the value of Kth 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++
#include <iostream>
using namespace std;
void isKthBitSet( int n, int k)
{
if (n & (1 << (k - 1)))
cout << "SET" ;
else
cout << "NOT SET" ;
}
int main()
{
int n = 5, k = 1;
isKthBitSet(n, k);
return 0;
}
|
C
#include <stdio.h>
void isKthBitSet( int n, int k)
{
if (n & (1 << (k - 1)))
printf ( "SET" );
else
printf ( "NOT SET" );
}
int main()
{
int n = 5, k = 1;
isKthBitSet(n, k);
return 0;
}
|
Java
class Number {
public static void isKthBitSet( int n,
int k)
{
if ((n & ( 1 << (k - 1 ))) > 0 )
System.out.print( "SET" );
else
System.out.print( "NOT SET" );
}
public static void main(String[] args)
{
int n = 5 , k = 1 ;
isKthBitSet(n, k);
}
}
|
Python3
def isKthBitSet(n, k):
if n & ( 1 << (k - 1 )):
print ( "SET" )
else :
print ( "NOT SET" )
n = 5
k = 1
isKthBitSet(n, k)
|
C#
using System;
class GFG {
public static void isKthBitSet( int n,
int k)
{
if ((n & (1 << (k - 1))) > 0)
Console.Write( "SET" );
else
Console.Write( "NOT SET" );
}
public static void Main()
{
int n = 5, k = 1;
isKthBitSet(n, k);
}
}
|
PHP
<?php
function isKthBitSet( $n , $k )
{
if ( $n & (1 << ( $k - 1)))
echo "SET" ;
else
echo "NOT SET" ;
}
$n = 5; $k = 1;
isKthBitSet( $n , $k );
?>
|
Javascript
<script>
function isKthBitSet(n, k)
{
if ((n & (1 << (k - 1))) > 0)
document.write( "SET" );
else
document.write( "NOT SET" );
}
let n = 5, k = 1;
isKthBitSet(n, k);
</script>
|
Output:
SET
Time Complexity : O(1)
Auxiliary Space: O(1)
Method 2 (Using Right Shift Operator)
If we right shift n by k-1, we get the last bit as 1 if Kth bit is set else 0.
C++
#include <iostream>
using namespace std;
void isKthBitSet( int n, int k)
{
if ((n >> (k - 1)) & 1)
cout << "SET" ;
else
cout << "NOT SET" ;
}
int main()
{
int n = 5, k = 1;
isKthBitSet(n, k);
return 0;
}
|
C
#include <stdio.h>
void isKthBitSet( int n, int k)
{
if ((n >> (k - 1)) & 1)
printf ( "SET" );
else
printf ( "NOT SET" );
}
int main()
{
int n = 5, k = 1;
isKthBitSet(n, k);
return 0;
}
|
Java
import java.io.*;
class GFG
{
static void isKthBitSet( int n,
int k)
{
if (((n >> (k - 1 )) &
1 ) > 0 )
System.out.println( "SET" );
else
System.out.println( "NOT SET" );
}
public static void main (String[] args)
{
int n = 5 , k = 1 ;
isKthBitSet(n, k);
}
}
|
Python3
def isKthBitSet(n, k):
if ((n >> (k - 1 )) and 1 ):
print ( "SET" )
else :
print ( "NOT SET" )
n, k = 5 , 1
isKthBitSet(n, k)
|
C#
using System;
class GFG
{
static void isKthBitSet( int n,
int k)
{
if (((n >> (k - 1)) &
1) > 0)
Console.WriteLine( "SET" );
else
Console.WriteLine( "NOT SET" );
}
static public void Main ()
{
int n = 5, k = 1;
isKthBitSet(n, k);
}
}
|
PHP
<?php
function isKthBitSet( $n , $k )
{
if (( $n >> ( $k - 1)) & 1)
echo "SET" ;
else
echo "NOT SET" ;
}
$n = 5; $k = 1;
isKthBitSet( $n , $k );
?>
|
Javascript
<script>
function isKthBitSet(n, k)
{
if (((n >> (k - 1)) &
1) > 0)
document.write( "SET" );
else
document.write( "NOT SET" );
}
let n = 5, k = 1;
isKthBitSet(n, k);
</script>
|
Output:
SET
Time Complexity : O(1)
Auxiliary Space: O(1), since no extra space has been taken.
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 write.geeksforgeeks.org or mail your article to review-team@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.