Skip to content
Related Articles

Related Articles

Improve Article

Count number of trailing zeros in Binary representation of a number using Bitset

  • Last Updated : 18 Jun, 2021

Given a number. The task is to count the number of Trailing Zero in Binary representation of a number using bitset.
Examples: 
 

Input : N = 16
Output : 4
Binary representation of N is 1000. Therefore,
number of zeroes at the end is 3.

Input : N = 8
Output : 3

 

Approach: We simply set the number in the bitset and then we iterate from 0 indexes of bitset, as soon as we get 1 we will break the loop because there is no trailing zero after that.
Below is the implementation of above approach: 
 

C++




// C++ program to count number of trailing zeros
// in Binary representation of a number
// using Bitset
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to count number of trailing zeros in
// Binary representation of a number
// using Bitset
int CountTrailingZeros(int n)
{
    // declare bitset of 64 bits
    bitset<64> bit;
 
    // set bitset with the value
    bit |= n;
 
    int zero = 0;
 
    for (int i = 0; i < 64; i++) {
        if (bit[i] == 0)
            zero++;
        // if '1' comes then break
        else
            break;
    }
 
    return zero;
}
 
// Driver Code
int main()
{
    int n = 4;
 
    int ans = CountTrailingZeros(n);
 
    cout << ans << "\n";
 
    return 0;
}

Java




// Java program to count number of trailing zeros
// in Binary representation of a number
// using Bitset
import java.util.*;
import java.lang.*;
import java.io.*;
 
class GFG
{
      
    // Function to count number of trailing zeros in
    // Binary representation of a number
    // using Bitset
    static int CountTrailingZeros(int n)
    {
         
        String bit = Integer.toBinaryString(n);
        StringBuilder bit1 = new StringBuilder();
        bit1.append(bit);
        bit1=bit1.reverse();
        int zero = 0;
      
        for (int i = 0; i < 64; i++) {
            if (bit1.charAt(i) == '0')
                zero++;
            // if '1' comes then break
            else
                break;
        }
      
        return zero;
    }
      
    // Driver Code
    public static void main(String []args)
    {
        int n = 4;
      
        int ans = CountTrailingZeros(n);
      
        System.out.println(ans);
    }
}
 
// This code is contributed by chitranayal

Python3




# Python3 program to count
# number of trailing zeros in
# Binary representation of a number
 
# Function to count number of
# trailing zeros in Binary
# representation of a number
def CountTrailingZeros(n):
     
    # declare bitset of 64 bits
    bit = bin(n)[2:]
    bit = bit[::-1]
 
    zero = 0;
 
    for i in range(len(bit)):
        if (bit[i] == '0'):
            zero += 1
             
        # if '1' comes then break
        else:
            break
 
    return zero
 
# Driver Code
n = 4
 
ans = CountTrailingZeros(n)
 
print(ans)
 
# This code is contributed
# by Mohit Kumar

C#




// C# program to count number of trailing zeros
// in Binary representation of a number
// using Bitset
using System;
class GFG
{
 
  // Function to count number of trailing zeros in
  // Binary representation of a number
  // using Bitset
  static int CountTrailingZeros(int n)
  {
    string bit=Convert.ToString(n, 2);
    char[] charArray = bit.ToCharArray();
    Array.Reverse( charArray );
    string bit1 = new string( charArray );
    int zero = 0;
    for (int i = 0; i < 64; i++)
    {
      if (bit1[i] == '0')
      {
        zero++;
      }
 
      // if '1' comes then break
      else
      {
        break;
      }
    }
    return zero;
  }
 
  // Driver Code
  static public void Main ()
  {
    int n = 4;
    int ans = CountTrailingZeros(n);
    Console.WriteLine(ans);
  }
}
 
// This code is contributed by avanitrachhadiya2155

Javascript




<script>
 
// JavaScript program to count number of trailing zeros
// in Binary representation of a number
// using Bitset
     
    // Function to count number of trailing zeros in
    // Binary representation of a number
    // using Bitset
    function CountTrailingZeros(n)
    {
        let bit = n.toString(2);
        let bit1=bit.split("");
        bit1=bit1.reverse();
        let zero = 0;
       
        for (let i = 0; i < 64; i++) {
            if (bit1[i] == '0')
                zero++;
            // if '1' comes then break
            else
                break;
        }
       
        return zero;
    }
     
    // Driver Code
    let n = 4;
    let ans = CountTrailingZeros(n);
    document.write(ans);
 
     
 
// This code is contributed by rag2127
 
</script>
Output: 
2

 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.




My Personal Notes arrow_drop_up
Recommended Articles
Page :