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
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.
C#
// C# program to Count set // bits in an integer using System;
class GFG {
// 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 Code
public static void Main()
{
int i = 9;
Console.Write(countSetBits(i));
}
} // This code is contributed by Sam007 |
Output:
2
Recursive Approach :
C#
// C# implementation of recursive // approach to find the number of // set bits in binary representation // of positive integer n using System;
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
static public void Main()
{
// get value
// from user
int n = 9;
// function calling
Console.WriteLine(countSetBits(n));
}
} // This code is contributed by aj_36 |
Output:
2
Please refer complete article on Count set bits in an integer for more details!
Article Tags :
Recommended Articles