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

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

 ``

Output:
`7`

Time Complexity: O(1)

Auxiliary Space: O(1)

Previous
Next