# Toggle bits in the given range

Given a non-negative number n and two values l and r. The problem is to toggle the bits in the range l to r in the binary representation of n, i.e, to toggle bits from the rightmost lth bit to the rightmost rth bit. A toggle operation flips a bit 0 to 1 and a bit 1 to 0.

Constraint: 1 <= l <= r <= number of bits in the binary representation of n.

Examples:

```Input : n = 17, l = 2, r = 3
Output : 23
(17)10 = (10001)2
(23)10 = (10111)2
The bits in the range 2 to 3 in the binary
representation of 17 are toggled.

Input : n = 50, l = 2, r = 5
Output : 44
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: Following are the steps:

1. Calculate num as = ((1 << r) – 1) ^ ((1 << (l-1)) – 1) or as ((1 <<r)-l). This will produce a number num having r number of bits and bits in the range l to r are the only set bits.
2. Now, perform n = n ^ num. This will toggle the bits in the range l to r in n.

## C/C++

 `// C++ implementation to toggle bits in ` `// the given range ` `#include ` `using` `namespace` `std; ` ` `  `// function to toggle bits in the given range ` `unsigned ``int` `toggleBitsFromLToR(unsigned ``int` `n, ` `                                ``unsigned ``int` `l, unsigned ``int` `r) ` `{ ` `    ``// calculating a number 'num' having 'r' ` `    ``// number of bits and bits in the range l ` `    ``// to r are the only set bits ` `    ``int` `num = ((1 << r) - 1) ^ ((1 << (l - 1)) - 1); ` ` `  `    ``// toggle bits in the range l to r in 'n' ` `    ``// and return the number ` `//Besides this, we can calculate num as: num=(1<

## Java

 `// Java implementation to toggle bits in ` `// the given range ` `import` `java.io.*; ` ` `  `class` `GFG  ` `{ ` `    ``// Function to toggle bits in the given range ` `    ``static` `int` `toggleBitsFromLToR(``int` `n, ``int` `l, ``int` `r) ` `    ``{ ` `        ``// calculating a number 'num' having 'r' ` `        ``// number of bits and bits in the range l ` `        ``// to r are the only set bits ` `        ``int` `num = ((``1` `<< r) - ``1``) ^ ((``1` `<< (l - ``1``)) - ``1``); ` `  `  `        ``// toggle bits in the range l to r in 'n' ` `        ``// and return the number ` `        ``//Besides this, we can calculate num as: num=(1<

## Python3

 `# Python implementation ` `# to toggle bits in ` `# the given range ` ` `  `# function to toggle bits ` `# in the given range ` `def` `toggleBitsFromLToR(n,l,r): ` ` `  `    ``# calculating a number ` `    ``# 'num' having 'r' ` `    ``# number of bits and ` `    ``# bits in the range l ` `    ``# to r are the only set bits ` `    ``num ``=` `((``1` `<< r) ``-` `1``) ^ ((``1` `<< (l ``-` `1``)) ``-` `1``) ` `  `  `    ``# toggle bits in the ` `    ``# range l to r in 'n' ` `    ``# Besides this, we can calculate num as: num=(1<

## C#

 `// C# implementation to toggle bits  ` `// in the given range ` `using` `System; ` ` `  `namespace` `Toggle ` `{ ` `    ``public` `class` `GFG ` `    ``{      ` `                 `  `    ``// Function to toggle bits in the given range ` `    ``static` `int` `toggleBitsFromLToR(``int` `n, ``int` `l, ``int` `r) ` `    ``{ ` `        ``// calculating a number 'num' having 'r' ` `        ``// number of bits and bits in the range l ` `        ``// to r are the only set bits ` `        ``int` `num = ((1 << r) - 1) ^ ((1 << (l - 1)) - 1); ` ` `  `        ``// toggle bits in the range l to r in 'n' ` `        ``//Besides this, we can calculate num as: num=(1<

## PHP

 ` `

Output:

```44
```

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

My Personal Notes arrow_drop_up

Improved By : vt_m, rajat_kumar

Article Tags :
Practice Tags :

4

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.