Open In App

Check if all bits of a number are set

Improve
Improve
Like Article
Like
Save
Share
Report

Given a number n. The problem is to check whether every bit in the binary representation of the given number is set or not. Here 0 <= n.
Examples : 

Input : 7
Output : Yes
(7)10 = (111)2

Input : 14
Output : No
Recommended Practice

Method 1: If n = 0, then answer is ‘No’. Else perform the two operations until n becomes 0. 

While (n > 0)
 If n & 1 == 0, 
     return 'No'
 n >> 1

If the loop terminates without returning ‘No’, then all bits are set in the binary representation of n

C++




// C++ implementation to check whether every digit in the
// binary representation of the given number is set or not
#include <bits/stdc++.h>
using namespace std;
 
// function to check if all the bits are set or not in the
// binary representation of 'n'
string areAllBitsSet(int n)
{
    // all bits are not set
    if (n == 0)
        return "No";
    // loop till n becomes '0'
    while (n > 0) {
        // if the last bit is not set
        if ((n & 1) == 0)
            return "No";
        // right shift 'n' by 1
        n = n >> 1;
    }
    // all bits are set
    return "Yes";
}
 
// Driver program to test above
int main()
{
    int n = 7;
    cout << areAllBitsSet(n);
    return 0;
}
 
// This code is contributed by Sania Kumari Gupta (kriSania804)


C




// C implementation to check whether every digit in the
// binary representation of the given number is set or not
#include <stdio.h>
 
// function to check if all the bits are set or not in the
// binary representation of 'n'
void areAllBitsSet(int n)
{
    // all bits are not set
    if (n == 0)
        printf("No");
    // loop till n becomes '0'
    while (n > 0) {
        // if the last bit is not set
        if ((n & 1) == 0)
            printf("No");
        // right shift 'n' by 1
        n = n >> 1;
    }
    // all bits are set
    printf("Yes");
}
 
// Driver program to test above
int main()
{
    int n = 7;
    areAllBitsSet(n);
    return 0;
}
 
// This code is contributed by Sania Kumari Gupta (kriSania804)


Java




// java implementation to check
// whether every digit in the
// binary representation of the
// given number is set or not
import java.io.*;
 
class GFG {
     
    // function to check if all the bits
    // are setthe bits are set or not
    // in the binary representation of 'n'
    static String areAllBitsSet(int n)
    {
        // all bits are not set
        if (n == 0)
            return "No";
     
        // loop till n becomes '0'
        while (n > 0)
        {
            // if the last bit is not set
            if ((n & 1) == 0)
                return "No";
     
            // right shift 'n' by 1
            n = n >> 1;
        }
     
            // all bits are set
            return "Yes";
    }
     
    // Driver program to test above
    public static void main (String[] args) {
    int n = 7;
     
    System.out.println(areAllBitsSet(n));
    }
}
 
 
// This code is contributed by vt_m


Python3




# Python implementation
# to check whether every
# digit in the binary
# representation of the
# given number is set or not
 
# function to check if
# all the bits are set
# or not in the binary
# representation of 'n'
def areAllBitsSet(n):
 
    # all bits are not set
    if (n == 0):
        return "No"
  
    # loop till n becomes '0'
    while (n > 0):
     
        # if the last bit is not set
        if ((n & 1) == 0):
            return "No"
  
        # right shift 'n' by 1
        n = n >> 1
     
  
    # all bits are set
    return "Yes"
 
  
# Driver program to test above
 
n = 7
print(areAllBitsSet(n))
 
# This code is contributed
# by Anant Agarwal.


C#




// C# implementation to check
// whether every digit in the
// binary representation of the
// given number is set or not
using System;
 
class GFG
{
     
    // function to check if 
    // all the bits are set
    // or not in the binary
    // representation of 'n'
    static String areAllBitsSet(int n)
    {
        // all bits are not set
        if (n == 0)
            return "No";
     
        // loop till n becomes '0'
        while (n > 0)
        {
            // if the last bit
            // is not set
            if ((n & 1) == 0)
                return "No";
     
            // right shift 'n' by 1
            n = n >> 1;
        }
     
            // all bits are set
            return "Yes";
    }
     
    // Driver Code
    static public void Main ()
    {
        int n = 7;
        Console.WriteLine(areAllBitsSet(n));
    }
}
 
// This code is contributed by ajit


PHP




<?php
// PHP implementation to check
// whether every digit in the
// binary representation of the
// given number is set or not
 
// function to check if all the
// bits are set or not in the
// binary representation of 'n'
function areAllBitsSet($n)
{
    // all bits are not set
    if ($n == 0)
        return "No";
 
    // loop till n becomes '0'
    while ($n > 0)
    {
        // if the last bit is not set
        if (($n & 1) == 0)
            return "No";
 
        // right shift 'n' by 1
        $n = $n >> 1;
    }
 
    // all bits are set
    return "Yes";
}
 
// Driver Code
$n = 7;
echo areAllBitsSet($n);
 
// This code is contributed by aj_36
?>


Javascript




<script>
 
// javascript implementation to check
// whether every digit in the
// binary representation of the
// given number is set or not
    
// function to check if all the bits
// are setthe bits are set or not
// in the binary representation of 'n'
function areAllBitsSet(n)
{
    // all bits are not set
    if (n == 0)
        return "No";
 
    // loop till n becomes '0'
    while (n > 0)
    {
        // if the last bit is not set
        if ((n & 1) == 0)
            return "No";
 
        // right shift 'n' by 1
        n = n >> 1;
    }
 
        // all bits are set
        return "Yes";
}
     
// Driver program to test above
var n = 7;
document.write(areAllBitsSet(n));
 
// This code contributed by Princi Singh
 
</script>


Output : 
 

Yes

Time Complexity: O(d), where ‘d’ is the number of bits in the binary representation of n.
Auxiliary Space: O(1)
 
Method 2: If n = 0, then answer is ‘No’. Else add 1 to n. Let it be num = n + 1. If num & (num – 1) == 0, then all bits are set, else all bits are not set. 
Explanation: If all bits in the binary representation of n are set, then adding ‘1’ to it will produce a number that will be a perfect power of 2. Now, check whether the new number is a perfect power of 2 or not. 
 

C++




// C++ implementation to check whether every
// digit in the binary representation of the
// given number is set or not
#include <bits/stdc++.h>
using namespace std;
 
// function to check if all the bits are set
// or not in the binary representation of 'n'
string areAllBitsSet(int n)
{
    // all bits are not set
    if (n == 0)
        return "No";
 
    // if true, then all bits are set
    if (((n + 1) & n) == 0)
        return "Yes";
 
    // else all bits are not set
    return "No";
}
 
// Driver program to test above
int main()
{
    int n = 7;
    cout << areAllBitsSet(n);
    return 0;
}


Java




// JAVA implementation to check whether
// every digit in the binary representation
// of the given number is set or not
import java.io.*;
 
class GFG {
     
    // function to check if all the
    // bits are set or not in the
    // binary representation of 'n'
    static String areAllBitsSet(int n)
    {
        // all bits are not set
        if (n == 0)
            return "No";
     
        // if true, then all bits are set
        if (((n + 1) & n) == 0)
            return "Yes";
     
        // else all bits are not set
        return "No";
    }
     
    // Driver program to test above
    public static void main (String[] args) {
    int n = 7;
    System.out.println(areAllBitsSet(n));
    }
}
 
// This code is contributed by vt_m


Python3




# Python implementation to
# check whether every
# digit in the binary
# representation of the
# given number is set or not
 
# function to check if
# all the bits are set
# or not in the binary
# representation of 'n'
def areAllBitsSet(n):
 
    # all bits are not set
    if (n == 0):
        return "No"
  
    # if true, then all bits are set
    if (((n + 1) & n) == 0):
        return "Yes"
  
    # else all bits are not set
    return "No"
 
  
# Driver program to test above
 
n = 7
print(areAllBitsSet(n))
 
# This code is contributed
# by Anant Agarwal.


C#




// C# implementation to check
// whether every digit in the
// binary representation of
// the given number is set or not
using System;
 
class GFG
{
     
    // function to check if all the
    // bits are set or not in the
    // binary representation of 'n'
    static String areAllBitsSet(int n)
    {
        // all bits are not set
        if (n == 0)
            return "No";
     
        // if true, then all
        // bits are set
        if (((n + 1) & n) == 0)
            return "Yes";
     
        // else all bits are not set
        return "No";
    }
     
    // Driver Code
    static public void Main ()
    {
        int n = 7;
        Console.WriteLine(areAllBitsSet(n));
    }
}
 
// This code is contributed by m_kit


PHP




<?php
// PHP implementation to check
// whether every digit in the
// binary representation of the
// given number is set or not
 
// function to check if all
// the bits are set or not in
// the binary representation of 'n'
function areAllBitsSet($n)
{
    // all bits are not set
    if ($n == 0)
        return "No";
 
    // if true, then all
    // bits are set
    if ((($n + 1) & $n) == 0)
        return "Yes";
 
    // else all bits
    // are not set
    return "No";
}
 
// Driver Code
$n = 7;
echo areAllBitsSet($n);
 
// This code is contributed by ajit
?>


Javascript




<script>
// javascript implementation to check whether
// every digit in the binary representation
// of the given number is set or not
    
// function to check if all the
// bits are set or not in the
// binary representation of 'n'
function areAllBitsSet(n)
{
    // all bits are not set
    if (n == 0)
        return "No";
 
    // if true, then all bits are set
    if (((n + 1) & n) == 0)
        return "Yes";
 
    // else all bits are not set
    return "No";
}
 
// Driver program to test above
var n = 7;
document.write(areAllBitsSet(n));
 
// This code contributed by Princi Singh
</script>


Output

Yes

Time Complexity:  O(d), where ‘d’ is the number of bits in the binary representation of n.
Auxiliary Space:  O(1)

Method 3: We can simply count the total set bits present in the binary representation of the number and based on this, we can check if the number is equal to pow(2, __builtin_popcount(n)). If it happens to be equal, then we return 1, else return 0;

C++




#include <bits/stdc++.h>
using namespace std;
 
void isBitSet(int N)
{
    if (N == pow(2, __builtin_popcount(N)) - 1)
        cout << "Yes\n";
    else cout << "No\n";
}
 
int main()
{
    int N = 7;
    isBitSet(N);
    return 0;
}


Java




import java.util.*;
 
class GFG{
 
static void isBitSet(int N)
{
    if (N == Math.pow(2, Integer.bitCount(N)) - 1)
        System.out.print("Yes\n");
    else System.out.print("No\n");
}
 
public static void main(String[] args)
{
    int N = 7;
    isBitSet(N);
}
}
 
// This code is contributed by umadevi9616


Python3




def bitCount(n):
    n = n - ((n >> 1) & 0x55555555);
    n = (n & 0x33333333) + ((n >> 2) & 0x33333333);
    return ((n + (n >> 4) & 0xF0F0F0F) * 0x1010101) >> 24;
 
 
def isBitSet(N):
    if (N == pow(2, bitCount(N)) - 1):
        print("Yes");
    else:
        print("No");
 
 
if __name__ == '__main__':
    N = 7;
    isBitSet(N);
     
# This code is contributed by gauravrajput1


C#




using System;
 
public class GFG{
     static int bitCount (int n) {
          n = n - ((n >> 1) & 0x55555555);
          n = (n & 0x33333333) + ((n >> 2) & 0x33333333);
          return ((n + (n >> 4) & 0xF0F0F0F) * 0x1010101) >> 24;
        }
      
     
static void isBitSet(int N)
{
    if (N == Math.Pow(2, bitCount(N)) - 1)
        Console.Write("Yes\n");
    else Console.Write("No\n");
}
 
public static void Main(String[] args)
{
    int N = 7;
    isBitSet(N);
}
}
 
// This code is contributed by umadevi9616


Javascript




<script>
   function bitCount (n) {
        n = n - ((n >> 1) & 0x55555555);
        n = (n & 0x33333333) + ((n >> 2) & 0x33333333);
        return ((n + (n >> 4) & 0xF0F0F0F) * 0x1010101) >> 24;
      }
    function isBitSet(N) {
        if (N == Math.pow(2, bitCount(N)) - 1)
            document.write("Yes\n");
        else
            document.write("No\n");
    }
 
        var N = 7;
        isBitSet(N);
 
// This code is contributed by umadevi9616
</script>


Output:

Yes

Time Complexity:  O(d), where ‘d’ is the number of bits in the binary representation of n.
Auxiliary Space: O(1)

References: 
https://www.careercup.com/question?id=9503107

 



Last Updated : 16 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads