Home » C programs » C bitwise operator's programs

# C program to Count the Number of Trailing Zeroes in an Integer

**Count the number of trailing zeroes in an integer in C**: Here, we are going to see **how to use bitwise operators for counting number of trailing zeros in the binary representation of an integer**?

Submitted by Radib Kar, on December 21, 2018

**Problem statement:** Write a **C program to Count the Number of Trailing Zeroes in the binary representation of an Integer**.

**Solution:** We can use bitwise operator, here to solve the problem.

**Pre-requisite:** Input number **n**

**Algorithm:**

1) Set count=0 2) Do bit wise AND with n and 1. n& 1 let n be a_{7}a_{6}a_{5}a_{4}a_{3}a_{2}a_{1}a_{0}1->00000001 So doing bitwise AND (refer to published article on bitwise operators) will result in all bits 0 except the LSB which will be a0. If a0 is 0 then the Integer has trailing zero else don’t have Thus, IF n& 1 = =0 count++ ELSE Break; //no more trailing zero since current LSB is 1 END IF-ELSE 3) Right shift n by 1 n=n>>1 4) IF n==0 Break ELSE REPEAT step 2, 3 5) Print

**Example with Explanation:**

Trailing zeroes in 12: 12 → 00001100

So first iteration:n=12 //00001100 n & 1 =0 count=1 n=n>>1 (n=6) //00000110So second iteration:n=6 //00000110 n & 1 =0 count=2 n=n>>1 (n=3) //00000011So third iteration:n=3 //00000011 n & 1 =1 break print count=2 No of trailing zeroes: 2

**C implementation**

#include <stdio.h> int main() { unsigned int n; printf("enter the integer\n"); scanf("%d",&n); int count=0; while(n!=0){ if(n & 1 == 1) //if current bit is 1 break; //no more trailing zero n=n>>1; //right shift count++; //if trailing zero, increase count } printf("no of trailing zero "); //print no of trailing zero printf("in its binary representation: %d \n",count); return 0; }

**Output (first run)**

enter the integer 12 no of trailing zero in its binary representation: 2

**Output (second run)**

enter the integer 13 no of trailing zero in its binary representation: 0

TOP Interview Coding Problems/Challenges

- Run-length encoding (find/print frequency of letters in a string)
- Sort an array of 0's, 1's and 2's in linear time complexity
- Checking Anagrams (check whether two string is anagrams or not)
- Relative sorting algorithm
- Finding subarray with given sum
- Find the level in a binary tree with given sum K
- Check whether a Binary Tree is BST (Binary Search Tree) or not
- 1[0]1 Pattern Count
- Capitalize first and last letter of each word in a line
- Print vertical sum of a binary tree
- Print Boundary Sum of a Binary Tree
- Reverse a single linked list
- Greedy Strategy to solve major algorithm problems
- Job sequencing problem
- Root to leaf Path Sum
- Exit Point in a Matrix
- Find length of loop in a linked list
- Toppers of Class
- Print All Nodes that don't have Sibling
- Transform to Sum Tree
- Shortest Source to Destination Path

Comments and Discussions

**Ad:**
Are you a blogger? Join our Blogging forum.

Learn PCB Designing: PCB DESIGNING TUTORIAL