Java Program to Count set bits in an integer

Write an efficient program to count number of 1s in binary representation of an integer.

Examples :

Input : n = 6
Output : 2
Binary representation of 6 is 110 and has 2 set bits

Input : n = 13
Output : 3
Binary representation of 11 is 1101 and has 3 set bits

setbit



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

1. Simple Method Loop through all bits in an integer, check if a bit is set and if it is then increment the set bit count. See below program.

Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to Count set
// bits in an integer
import java.io.*;
  
class countSetBits {
    /* Function to get no of set 
    bits in binary representation 
    of positive integer n */
    static int countSetBits(int n)
    {
        int count = 0;
        while (n > 0) {
            count += n & 1;
            n >>= 1;
        }
        return count;
    }
  
    // driver program
    public static void main(String args[])
    {
        int i = 9;
        System.out.println(countSetBits(i));
    }
}
  
// This code is contributed by Anshika Goyal.

chevron_right


Output:

2

Recursive Approach :

Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation of recursive
// approach to find the number
// of set bits in binary representation
// of positive integer n
import java.io.*;
  
class GFG {
  
    // recursive function to count set bits
    public static int countSetBits(int n)
    {
  
        // base case
        if (n == 0)
            return 0;
  
        else
  
            // if last bit set add 1 else add 0
            return (n & 1) + countSetBits(n >> 1);
    }
  
    // Driver code
    public static void main(String[] args)
    {
  
        // get value from user
        int n = 9;
  
        // function calling
        System.out.println(countSetBits(n));
    }
}
  
// This code is contributes by sunnysingh

chevron_right


Output:

2

Please refer complete article on Count set bits in an integer for more details!




My Personal Notes arrow_drop_up
Article Tags :

Be the First to upvote.


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