# Set all the bits in given range of a number

• Difficulty Level : Hard
• Last Updated : 27 May, 2022

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```

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

 ``

## Javascript

 ``

Output :

`23`

Time Complexity : O(1)

Auxiliary Space : O(1)

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