Related Articles
Program to toggle K-th bit of a number N
• Last Updated : 06 Nov, 2019

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 = 2
Output: 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 = 1
Output: 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.
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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

My Personal Notes arrow_drop_up