# Toggle the last m bits

• Difficulty Level : Easy
• Last Updated : 31 May, 2022

Given a non-negative number n. The problem is to toggle the last m bits in the binary representation of n. A toggle operation flips a bit from 0 to 1 and a bit from 1 to 0.
Constraint: 1 <= m <= n.

Examples:

```Input : n = 21, m = 2
Output : 22
(21)10 = (10101)2
(22)10 = (10110)2
The last two bits in the binary
representation of 21 are toggled.

Input : n = 107, m = 4
Output : 100 ```

Approach: Following are the steps:

1. Calculate num = (1 << m) – 1. This will produce a number num having m bits and all will be set.
2. Now, perform n = n ^ num. This will toggle the last m bits in n.

## C++

 `// C++ implementation to``// toggle the last m bits``#include ``using` `namespace` `std;` `// function to toggle``// the last m bits``unsigned ``int` `toggleLastMBits``         ``(unsigned ``int` `n, unsigned ``int` `m)``{``    ` `    ``// calculating a number``    ``// 'num' having 'm' bits``    ``// and all are set.``    ``unsigned ``int` `num = (1 << m) - 1;` `    ``// toggle the last m bits``    ``// and return the number``    ``return` `(n ^ num);``}` `// Driver code``int` `main()``{``    ``unsigned ``int` `n = 107;``    ``unsigned ``int` `m = 4;``    ``cout << toggleLastMBits(n, m);``    ``return` `0;``}`

## Java

 `// Java implementation to``// toggle the last m bits``import` `java.util.*;``import` `java.lang.*;` `public` `class` `GfG{``    ` `    ``// function to toggle``    ``// the last m bits``    ``public` `static` `int` `toggleLastMBits``                      ``(``int` `n, ``int` `m)``    ``{``        ` `        ``// calculating a number``        ``// 'num' having 'm' bits``        ``// and all are set``        ``int` `num = (``1` `<< m) - ``1``;`` ` `        ``// toggle the last m bits``        ``// and return the number``        ``return` `(n ^ num);``    ``}``    ` `    ``// Driver function``    ``public` `static` `void` `main(String argc[]){``        ``int` `n = ``107``;``        ``int` `m = ``4``;``        ``n =  toggleLastMBits(n, m);``        ``System.out.println(n);``              ` `    ``}``}` `// This code is contributed by Sagar Shukla.`

## Python3

 `# Python implementation to``# toggle the last m bits` `# function to toggle``# the last m bits``def` `toggleLastMBits(n,m):` `    ``# calculating a number``    ``# 'num' having 'm' bits``    ``# and all are set.``    ``num ``=` `(``1` `<< m) ``-` `1`` ` `    ``# toggle the last m bits``    ``# and return the number``    ``return` `(n ^ num)` `# Driver code` `n ``=` `107``m ``=` `4``print``(toggleLastMBits(n, m))` `# This code is contributed``# by Anant Agarwal.`

## C#

 `// C# implementation to``// toggle the last m bits``using` `System;` `namespace` `Toggle``{``    ``public` `class` `GFG``    ``{    ``                ` `    ``// Function to toggle the last m bits``    ``public` `static` `int` `toggleLastMBits(``int` `n, ``int` `m)``    ``{``        ` `        ``// Calculating a number 'num' having``        ``// 'm' bits and all are set``        ``int` `num = (1 << m) - 1;` `        ``// Toggle the last m bits``        ``// and return the number``        ``return` `(n ^ num);``    ``}``    ` `    ``// Driver Code``    ``public` `static` `void` `Main() {``        ` `        ``int` `n = 107, m = 4;``        ``n = toggleLastMBits(n, m);``        ``Console.Write(n);``                ` `    ``}``    ``}``}` `// This code is contributed by Sam007.`

## PHP

 ``

## Javascript

 ``

Output:

`100`

Time Complexity : O(1)

Auxiliary Space: O(1)

This article is contributed by Ayush Jauhari. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.