对于给定的数字n,如果第k位为0,则将其切换为1,如果为1,则将其切换为0。
例子 :
Input : n = 5, k = 1
Output : 4
5 is represented as 101 in binary
and has its first bit 1, so toggling
it will result in 100 i.e. 4.
Input : n = 2, k = 3
Output : 6
Input : n = 75, k = 4
Output : 67
以下是查找第k位值的简单步骤
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) Return bitwise XOR of temp and n. Since temp
has only k-th bit set, doing XOR would toggle
only this bit.
例子 :
n = 75 and k = 4
temp = 1 << (k-1) = 1 << 3 = 8
Binary Representation of temp = 0..00001000
Binary Representation of n = 0..01001011
Bitwise XOR of two numbers = 0..01000011
C++
// CPP program to toggle k-th bit of n
#include
using namespace std;
int toggleKthBit(int n, int k)
{
return (n ^ (1 << (k-1)));
}
// Driver code
int main()
{
int n = 5, k = 1;
cout << toggleKthBit(n , k);
return 0;
}
Java
// Java program to toogle
// k-th bit of a number
class Toggle
{
static int toggleKthBit(int n, int k)
{
return (n ^ (1 << (k-1)));
}
// main function
public static void main (String[] args)
{
int n = 5, k = 1;
System.out.println(toggleKthBit(n , k));
}
}
Python3
# Python3 code to toggle k-th bit of n
def toggleKthBit(n, k):
return (n ^ (1 << (k-1)))
# Driver code
n = 5
k = 1
print( toggleKthBit(n , k))
# This code is contributed by "Sharad_Bhardwaj".
C#
// C# program to toogle
// k-th bit of a number
using System;
class GFG {
static int toggleKthBit(int n, int k)
{
return (n ^ (1 << (k-1)));
}
// main function
public static void Main()
{
int n = 5, k = 1;
Console.WriteLine(toggleKthBit(n , k));
}
}
//This code is contributed by Anant Agarwal.
PHP
Javascript
输出 :
4