# Toggle all the bits of a number except k-th bit.

Last Updated : 17 Mar, 2023

Given a positive (or unsigned) integer n, write a function to toggle all the bits except k-th bit. Here value of k starts from 0 (zero) and from right.

Examples:

```Input : n = 4294967295, k = 0
Output : 1
The number 4294967295 in 32 bits has all bits
set.  When we toggle all bits except last bit,
we get 1.

Input  :  n = 1, k = 1
Output : 4294967292
4294967262 has all bits toggled except second
bit from right.```
1. Toggle bit at k-th position. We do it by finding a number with only k-th bit set (using 1 << k), then doing bitwise XOR of this number n.
2. Toggle all bits of number obtained above using ~ (Bitwise negation)

## C++

 `// C++ program to toggle all bits except kth bit` `#include ` `using` `namespace` `std;`   `// Returns a number with all bit toggled in n` `// except k-th bit` `unsigned ``int` `toggleAllExceptK(unsigned ``int` `n,` `                              ``unsigned ``int` `k)` `{` `    `  `    ``/* 1) Toggle k-th bit by doing n ^ (1 << k)` `       ``2) Toggle all bits of the modified number */` `    ``return` `~(n ^ (1 << k));` `}`   `// Driver code` `int` `main()` `{` `    ``unsigned ``int` `n = 4294967295;` `    ``unsigned ``int` `k = 0;` `    `  `    ``cout << toggleAllExceptK(n, k);` `    `  `    ``return` `0;` `}`   `// This code is contributed by khushboogoyal499`

## C

 `// C program to toggle all bits except kth bit` `#include`   `// Returns a number with all bit toggled in n` `// except k-th bit` `unsigned ``int` `toggleAllExceptK(unsigned ``int` `n,` `                            ``unsigned ``int` `k)` `{` `   ``/* 1) Toggle k-th bit by doing n ^ (1 << k)` `      ``2) Toggle all bits of the modified number */` `    ``return` `~(n ^ (1 << k));` `}`   `// Driver code` `int` `main()` `{` `    ``unsigned ``int` `n = 4294967295;` `    ``unsigned ``int` `k = 0;` `    ``printf``(``"%u"``, toggleAllExceptK( n, k));` `    ``return` `0;` `}`

## Java

 `public` `class` `Main {` `    ``// Returns a number with all bit toggled in n` `    ``// except k-th bit` `    ``public` `static` `long` `toggleAllExceptK(``long` `n, ``int` `k) {` `        ``// 1) Toggle k-th bit by doing n ^ (1 << k)` `        ``// 2) Toggle all bits of the modified number ` `        ``long` `temp = n ^ (1L << k);` `        ``long` `mask = (1L << ``32``) - ``1``;` `        ``return` `~temp & mask;` `    ``}`   `    ``// Driver code` `    ``public` `static` `void` `main(String[] args) {` `        ``long` `n = 4294967295L;` `        ``int` `k = ``0``;` `        ``System.out.println(toggleAllExceptK(n, k));` `    ``}` `}`

## Python3

 `# Python3 program to toggle all bits` `# except kth bit`   `# Returns a number with all bit toggled` `# in n except k-th bit` `def` `toggleAllExceptK(n, k):` `    `  `    ``# 1) Toggle k-th bit by doing n ^ (1 << k)` `    ``# 2) Toggle all bits of the modified number ` `    ``temp ``=` `bin``(n ^ (``1` `<< k))[``2``:]`   `    ``ans ``=` `""`   `    ``for` `i ``in` `temp:` `        ``if` `i ``=``=` `'1'``:` `            ``ans ``+``=` `'0'` `        ``else``:` `            ``ans ``+``=` `'1'`   `    ``return` `int``(ans, ``2``)`   `# Driver code` `if` `__name__ ``=``=` `'__main__'``:` `    `  `    ``n ``=` `4294967295` `    ``k ``=` `0` `    `  `    ``print``(toggleAllExceptK(n, k))`   `# This code is contributed by mohit kumar 29`

## Javascript

 ``

## C#

 `// C# equivalent code` `using` `System;`   `public` `class` `Program` `{` `    ``// Returns a number with all bit toggled in n` `    ``// except k-th bit` `    ``public` `static` `long` `toggleAllExceptK(``long` `n, ``int` `k)` `    ``{` `        ``// 1) Toggle k-th bit by doing n ^ (1 << k)` `        ``long` `temp = n ^ (1L << k);` `        ``// 2) Toggle all bits of the modified number ` `        ``long` `mask = (1L << 32) - 1;` `        ``return` `~temp & mask;` `    ``}`   `    ``// Driver code` `    ``public` `static` `void` `Main(``string``[] args)` `    ``{` `        ``long` `n = 4294967295L;` `        ``int` `k = 0;` `        ``Console.WriteLine(toggleAllExceptK(n, k));` `    ``}` `}`

Output:

`1`

Time Complexity : O(1)

Space Complexity : O(1)

Previous
Next