Given a number N and a bit number K, check if the Kth bit of N is set or not. A bit is called set if it is 1.
Note: Indexing starts with 0 from LSB (least significant bit) side in the binary representation of the number.
Examples:
Input: n = 5, k = 1
Output: NOT SET
Explanation: 5 is represented as 101 in binary and bit at position 1 is not set
Input: n = 2, k = 3
Output: NOT SET
Explanation: 2 is represented as 10 in binary, all higher i.e. beyond MSB, bits are NOT SET.
Check whether the K-th bit is set or not Using Left Shift Operator:
To solve the problem follow the below idea:
- Left shift given number 1 by k to create a number that has only set bit as k-th bit.
temp = 1 << k
- If bitwise AND of n and temp is non-zero, then result is SET else result is NOT SET.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
void isKthBitSet( int n, int k)
{
if (n & (1 << k))
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))
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)) != 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):
print ( "SET" )
else :
print ( "NOT SET" )
if __name__ = = "__main__" :
n = 5
k = 1
isKthBitSet(n, k)
|
C#
using System;
class GFG {
public static void isKthBitSet( int n, int k)
{
if ((n & (1 << k)) > 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 ))
echo "SET" ;
else
echo "NOT SET" ;
}
$n = 5; $k = 1;
isKthBitSet( $n , $k );
?>
|
Javascript
<script>
function isKthBitSet(n, k)
{
if ((n & (1 << k)) > 0)
document.write( "SET" );
else
document.write( "NOT SET" );
}
let n = 5, k = 1;
isKthBitSet(n, k);
</script>
|
Time Complexity: O(1)
Auxiliary Space: O(1)
Check whether the K-th bit is set or not Using Right Shift Operator:
To solve the problem follow the below idea:
If we right shift n by k, we get the last bit as 1 if the Kth bit is set else 0
Below is the implementation of the above approach:
C++
#include <iostream>
using namespace std;
void isKthBitSet( int n, int k)
{
if ((n >> 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 >> k) & 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 ) > 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) and 1 ):
print ( "SET" )
else :
print ( "NOT SET" )
if __name__ = = "__main__" :
n, k = 5 , 1
isKthBitSet(n, k)
|
C#
using System;
class GFG {
static void isKthBitSet( int n, int k)
{
if (((n >> k) & 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)
echo "SET" ;
else
echo "NOT SET" ;
}
$n = 5; $k = 1;
isKthBitSet( $n , $k );
?>
|
Javascript
<script>
function isKthBitSet(n, k)
{
if (((n >> k) &
1) > 0)
document.write( "SET" );
else
document.write( "NOT SET" );
}
let n = 5, k = 1;
isKthBitSet(n, k);
</script>
|
Time Complexity: O(1)
Auxiliary Space: O(1)
This article is contributed by SAKSHI TIWARI. If you like neveropen(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 neveropen 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.
Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!