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.
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.
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)
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)
If you like w3wiki(We know you do!) and would like to contribute, you can also write an article using write.w3wiki.net or mail your article to review-team@w3wiki.net.
Contact Us