Program to toggle Kth bit of a number N (original) (raw)

Last Updated : 8 Nov, 2021

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:

Any bit Set bit = Toggle

which means, 0 ^ 1 = 1 1 ^ 1 = 0

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<bits/stdc++.h> 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 <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

JavaScript

`

Time Complexity: O(1)

Auxiliary Space: O(1)