给定数字n,请检查是否设置了n的第K位。
例子:
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.
方法1(使用左移运算符)
以下是查找Kth位的值的简单步骤:
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.
例子:
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++
// CPP program to check if k-th bit
// of a given number is set or not
#include
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;
}
Java
// 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))) > 0)
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
Python3
# 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".
C#
// 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))) > 0)
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.
PHP
Javascript
C++
// CPP program to check if k-th bit
// of a given number is set or not using
// right shift operator.
#include
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;
}
Java
// 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) > 0)
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
Python3
# 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
C#
// 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) > 0)
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
PHP
> ($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
?>
输出:
SET
方法2(使用右移运算符)
如果将n右移k-1,则如果将第K位设置为0,则最后一位为1。
C++
// CPP program to check if k-th bit
// of a given number is set or not using
// right shift operator.
#include
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;
}
Java
// 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) > 0)
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
Python3
# 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
C#
// 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) > 0)
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
的PHP
> ($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
?>
输出:
SET