# 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<bits/stdc++.h>` `using` `namespace` `std;` `// 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;` ` ` `cout << toggleBit(n, k) << endl;` ` ` `return` `0;` `}` `// This code is contributed by noob2000` |

## 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` |

## Javascript

`<script>` `// Javascript program to toggle K-th bit of a number N` `// Function to toggle the kth bit of n` `function` `toggleBit(n, k)` `{` ` ` `return` `(n ^ (1 << (k - 1)));` `}` `// Driver code` `var` `n = 5, k = 2;` `document.write( toggleBit(n, k));` `// This code is contributed by famously.` `</script>` |

**Output:**

7

Time Complexity: O(1)

Auxiliary Space: O(1)