# Set all the bits in given range of a number

Given a non-negative number n and two values l and r. The problem is to set the bits in the range l to r in the binary representation of n, i.e, to unset bits from the rightmost lth bit to the rightmost r-th bit.
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 set.

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

## Recommended: Please solve it on “PRACTICE” first, before moving on to the solution.

Approach: Following are the steps:

```1. Find a number 'range' that has all set
bits in given range. And all other bits
of this number are 0.
range = (((1 << (l - 1)) - 1) ^
((1 << (r)) - 1));

2. Now, perform "n = n | range". This will
set the bits in the range from l to r
in n.
```

## C++

 `// C++ implementation to Set bits in ` `// the given range ` `#include ` `using` `namespace` `std; ` ` `  `// function to toggle bits in the given range ` `int` `setallbitgivenrange(``int` `n, ``int` `l, ``int` `r) ` `{ ` `    ``// calculating a number 'range' having set ` `    ``// bits in the range from l to r and all other ` `    ``// bits as 0 (or unset). ` `    ``int` `range = (((1 << (l - 1)) - 1) ^     ` `                ``((1 << (r)) - 1)); ` ` `  `    ``return` `(n | range); ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `n = 17, l = 2, r = 3; ` `    ``cout << setallbitgivenrange(n, l, r); ` `    ``return` `0; ` `} `

## Java

 `// java implementation to Set bits in ` `// the given range ` `import` `java.util.*; ` ` `  `class` `GFG ` `{ ` `     `  `    ``// function to toggle bits in the  ` `    ``// given range ` `    ``static` `int` `setallbitgivenrange(``int` `n, ` `                             ``int` `l, ``int` `r) ` `    ``{ ` `         `  `        ``// calculating a number 'range'  ` `        ``// having set bits in the range  ` `        ``// from l to r and all other ` `        ``// bits as 0 (or unset). ` `        ``int` `range = (((``1` `<< (l - ``1``)) - ``1``) ^  ` `                    ``((``1` `<< (r)) - ``1``)); ` `     `  `        ``return` `(n | range); ` `    ``} ` `     `  `    ``// Driver code ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``int` `n = ``17``, l = ``2``, r = ``3``; ` `         `  `        ``System.out.println(setallbitgivenrange( ` `                                      ``n, l, r)); ` `    ``} ` `     `  `} ` ` `  `// This code is contributed by Sam007. `

## Python3

 `# Python3 implementation to Set  ` `# bits in the given range ` ` `  `# Function to toggle bits ` `# in the given range ` `def` `setallbitgivenrange(n, l, r): ` ` `  `    ``# calculating a number 'range' ` `    ``# having set bits in the range ` `    ``# from l to r and all other ` `    ``# bits as 0 (or unset). ` `    ``range` `=` `(((``1` `<< (l ``-` `1``)) ``-` `1``) ^  ` `                ``((``1` `<< (r)) ``-` `1``)) ` ` `  `    ``return` `(n | ``range``) ` ` `  `# Driver code ` `n, l, r ``=` `17``, ``2``, ``3` `print``(setallbitgivenrange(n, l, r)) ` ` `  `# This code is contributed by Anant Agarwal. `

## C#

 `// C# implementation to Set  ` `// bits in the given range ` `using` `System; ` ` `  `class` `GFG ` `{ ` `    ``// function to toggle bits  ` `    ``// in the given range ` `    ``static` `int` `setallbitgivenrange(``int` `n, ``int` `l, ``int` `r) ` `    ``{ ` `         `  `        ``// calculating a number 'range'  ` `        ``// having set bits in the range  ` `        ``// from l to r and all other ` `        ``// bits as 0 (or unset). ` `        ``int` `range = (((1 << (l - 1)) - 1) ^  ` `                     ``((1 << (r)) - 1)); ` `     `  `        ``return` `(n | range); ` `    ``} ` `     `  `    ``// Driver code ` `    ``static` `void` `Main() ` `    ``{ ` `        ``int` `n = 17, l = 2, r = 3; ` `        ``Console.Write(setallbitgivenrange(n, l, r)); ` `    ``} ` `     `  `} ` ` `  `// This code is contributed by Sam007 `

## PHP

 ` `

Output :

```23
```

This article is contributed by Devanshu Agarwal. 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 : Sam007

Article Tags :
Practice Tags :

1

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