Skip to content
Related Articles

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.

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 <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
Output:
7



My Personal Notes arrow_drop_up
Recommended Articles
Page :