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.
- 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.
- Toggle all bits of number obtained above using ~ (Bitwise negation)
C++
// C++ program to toggle all bits except kth bit#include <iostream>using namespace std;// Returns a number with all bit toggled in n// except k-th bitunsigned 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 codeint 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<stdio.h>// Returns a number with all bit toggled in n// except k-th bitunsigned 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 codeint 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 bitdef 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 codeif __name__ == '__main__': n = 4294967295 k = 0 print(toggleAllExceptK(n, k))# This code is contributed by mohit kumar 29 |
Javascript
<script>// javascript program to toggle all bits except kth bit // Returns a number with all bit toggled in n // except k-th bit function toggleAllExceptK(n,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 let n = 4294967295; let k = 0; document.write(toggleAllExceptK(n, k)); //This code is contributed by unknown2108 </script> |
C#
// C# equivalent codeusing 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)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

… [Trackback]
[…] Read More Information here to that Topic: geeksforgeeks.org/toggle-all-the-bits-of-a-number-except-k-th-bit/ […]