Program to toggle K-th bit of a number N

Given a number N, the task is to clear the K-th bit of this number N. If K-th bit is 0, then set it to 1 and if it is 1 then set it to 0.

**Examples:**

Input:N = 5, K = 2Output:7 5 is represented as 101 in binary and has its second bit 0, so toggling it will result in 111 i.e. 7.Input:N = 5, K = 1Output:4 5 is represented as 101 in binary and has its first bit is 1, so toggling it will result in 100 i.e. 4.

**Approach:**

- Since XOR of unset and set bit results in a set bit and XOR of a set and set bit results in an unset bit. Hence performing bitwise XOR of any bit with a set bit results in toggle of that bit, i.e.
Any bit <bitwise XOR> Set bit = Toggle which means, 0 ^ 1 = 1 1 ^ 1 = 0

- So in order to toggle a bit, performing a bitwise XOR of the number with a reset bit is the best idea.
n = n ^ 1 << k OR n ^= 1 << k where k is the bit that is to be cleared

Below is the implementation of the above approach:

## C

`// C program to toggle K-th bit of a number N` ` ` `#include <stdio.h>` ` ` `// Function to toggle the kth bit of n` `int` `toggleBit(` `int` `n, ` `int` `k)` `{` ` ` `return` `(n ^ (1 << (k - 1)));` `}` ` ` `// Driver code` `int` `main()` `{` ` ` `int` `n = 5, k = 2;` ` ` ` ` `printf` `(` `"%d\n"` `, toggleBit(n, k));` ` ` ` ` `return` `0;` `}` |

## Java

`// Java program to toggle K-th bit of a number N` `class` `GFG` `{` ` ` `// Function to toggle the kth bit of n` `static` `int` `toggleBit(` `int` `n, ` `int` `k)` `{` ` ` `return` `(n ^ (` `1` `<< (k - ` `1` `)));` `}` ` ` `// Driver code` `public` `static` `void` `main(String []args)` `{` ` ` `int` `n = ` `5` `, k = ` `2` `;` ` ` ` ` `System.out.printf(` `"%d\n"` `, toggleBit(n, k));` `}` `}` ` ` `// This code is contributed by Rajput-Ji` |

## Python3

`# Python3 program to clear K-th bit ` `# of a number N ` ` ` `# Function to toggle the kth bit of n ` `def` `toggleBit(n, k) :` ` ` ` ` `return` `(n ^ (` `1` `<< (k ` `-` `1` `))); ` ` ` `# Driver code ` `if` `__name__ ` `=` `=` `"__main__"` `: ` ` ` ` ` `n ` `=` `5` `; k ` `=` `2` `; ` ` ` ` ` `print` `(toggleBit(n, k));` ` ` `# This code is contributed by AnkitRai01` |

## C#

`// C# program to toggle K-th bit of a number N` `using` `System; ` ` ` `class` `GFG` `{` ` ` `// Function to toggle the kth bit of n` `static` `int` `toggleBit(` `int` `n, ` `int` `k)` `{` ` ` `return` `(n ^ (1 << (k - 1)));` `}` ` ` `// Driver code` `public` `static` `void` `Main(String []args)` `{` ` ` `int` `n = 5, k = 2;` ` ` ` ` `Console.WriteLine(` `"{0}"` `, toggleBit(n, k));` `}` `}` ` ` `// This code is contributed by PrinciRaj1992` |

**Output:**

7