Related Articles
Check whether all the bits are set in the given range
• Difficulty Level : Expert
• Last Updated : 08 Apr, 2021

Given a non-negative number n and two values l and r. The problem is to check whether all the bits are set or not in the range l to r in the binary representation of n
Constraint: 1 <= l <= r <= number of bits in the binary representation of n.
Examples:

```Input : n = 22, l = 2, r = 3
Output : Yes
(22)10 = (10110)2
The bits in the range 2 to 3 are all set.

Input : n = 47, l = 2, r = 5
Output : No
(47)10 = (101111)2
The bits in the range 2 to 5 are all not set.```

Approach: Following are the steps:

1. Calculate num = ((1 << r) – 1) ^ ((1 << (l-1)) – 1). 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. Calculate new_num = n & num.
3. If num == new_num, return “Yes” (all bits are set in the given range).
4. Else return “No” (all bits are not set in the given range).

## C++

 `// C++ implementation to check whether all the bits``// are set in the given range or not``#include ` `using` `namespace` `std;` `// function to check whether all the bits``// are set in the given range or not``string allBitsSetInTheGivenRange(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);``    ` `    ``// new number which will only have one or more``    ``// set bits in the range l to r and nowhere else``    ``int` `new_num = n & num;``    ` `    ``// if both are equal, then all bits are set``    ``// in the given range``    ``if` `(num == new_num)``        ``return` `"Yes"``;``        ` `    ``// else all bits are not set   ``    ``return` `"No"``;   ``}` `// Driver program to test above``int` `main()``{``    ``unsigned ``int` `n = 22;``    ``unsigned ``int` `l = 2, r = 3;``    ``cout << allBitsSetInTheGivenRange(n, l, r);``    ``return` `0;``}`

## Java

 `// Java implementation to check whether all``// the bits are set in the given range or not``class` `GFG {``        ` `    ``// function to check whether all the bits``    ``// are set in the given range or not``    ``static` `String allBitsSetInTheGivenRange(``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``);``        ` `        ``// new number which will only have one``        ``// or more set bits in the range l to r``        ``// and nowhere else``        ``int` `new_num = n & num;``        ` `        ``// if both are equal, then all bits are``        ``// set in the given range``        ``if` `(num == new_num)``            ``return` `"Yes"``;``            ` `        ``// else all bits are not set``        ``return` `"No"``;``    ``}``    ` `    ``//Driver code``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `n = ``22``;``        ``int` `l = ``2``, r = ``3``;``        ` `        ``System.out.print(allBitsSetInTheGivenRange(``                                           ``n, l, r));``    ``}``}` `// This code is contributed by Anant Agarwal.`

## Python3

 `# Python3 implementation to check``# whether all the bits are set in``# the given range or not` `# Function to check whether all the bits``# are set in the given range or not``def` `allBitsSetInTheGivenRange(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``)``    ` `    ``# new number which will only have``    ``# one or more set bits in the range``    ``# l to r and nowhere else``    ``new_num ``=` `n & num``    ` `    ``# if both are equal, then all bits``    ``# are set in the given range``    ``if` `(num ``=``=` `new_num):``        ``return` `"Yes"``        ` `    ``# else all bits are not set``    ``return` `"No"` `# Driver code``n, l, r ``=` `22``, ``2``, ``3``print``(allBitsSetInTheGivenRange(n, l, r))` `# This code is contributed by Anant Agarwal.`

## C#

 `// C# implementation to check whether all the bits``// are set in the given range or not``using` `System;` `class` `GFG``{``    ``// function to check whether all the bits``    ``// are set in the given range or not``    ``static` `String allBitsSetInTheGivenRange(``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);``         ` `        ``// new number which will only have one or more``        ``// set bits in the range l to r and nowhere else``        ``int` `new_num = n & num;``         ` `        ``// if both are equal, then all bits are set``        ``// in the given range``        ``if` `(num == new_num)``            ``return` `"Yes"``;``             ` `        ``// else all bits are not set   ``        ``return` `"No"``;   ``    ``}``    ` `    ``//Driver code``    ``public` `static` `void` `Main ()``    ``{``        ``int` `n = 22;``        ``int` `l = 2, r = 3;``        ``Console.Write(allBitsSetInTheGivenRange(n, l, r));``    ``}``}` `// This code is contributed by Anant Agarwal.`

## PHP

 ``

## Javascript

 ``

Output:

`Yes`

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.