Open In App

PHP Program to Count set bits in an integer

Last Updated : 02 Jan, 2019
Improve
Improve
Like Article
Like
Save
Share
Report

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.

PHP




<?php
// Function to get no of set  
// bits in binary representation 
// of positive integer n 
function countSetBits($n)
{
    $count = 0;
    while ($n)
    {
        $count += $n & 1;
        $n >>= 1;
    }
    return $count;
}
  
// Driver Code
$i = 9;
echo countSetBits($i);
  
// This code is contributed by ajit
?>


Output:

2

Recursive Approach :

PHP




<?php
// PHP implementation of recursive
// approach to find the number of 
// set bits in binary representation
// of positive integer n
  
// recursive function 
// to count set bits
function countSetBits($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
  
// get value from user
$n = 9;
  
// function calling
echo countSetBits($n);
  
// This code is contributed by m_kit.
?>


Output:

2

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



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads