Write a C program to input any number from user and count number of trailing zeros in the given number using bitwise operator. How to find total number of trailing zeros in any given number using bitwise operator in C programming.

**Example**

**Input**

Input any number: 22

**Output**

Trailing zeros: 1

## Required knowledge

Bitwise operators, Data types, Variables and Expressions, Basic input/output, If else, For loop

## Logic to count trailing zeros in a binary number

Number of trailing zeros in a binary number is equal to first set bit position.

Step by step descriptive logic to count trailing zeros in a binary number.

- Input number from user. Store it in some variable say,
`num`. - Find total bits required to store an integer in memory say,
`INT_SIZE = sizeof(int) * 8`

.Read more – How to find size of a data type using sizeof() operator.

- Initialize a variable to store trailing zeros count, say
`count = 0;`

. - Run a loop from 0 to
`INT_SIZE`. The loop structure should look like`for(i=0; i<INT_SIZE; i++)`

. - Inside the loop if
`i`bit is set then terminate from loop; otherwise increment^{th}`count`by 1.

## Program to count trailing zeros in a binary number

```
/**
* C program to count trailing zeros in a binary number using bitwise operator
*/
#include <stdio.h>
#define INT_SIZE sizeof(int) * 8 /* Bits required to represent an integer */
int main()
{
int num, count, i;
/* Input number from user */
printf("Enter any number: ");
scanf("%d", &num);
count = 0;
/* Iterate over each bit of the number */
for(i=0; i<INT_SIZE; i++)
{
/* If set bit is found the terminate from loop*/
if((num >> i ) & 1)
{
/* Terminate from loop */
break;
}
/* Increment trailing zeros count */
count++;
}
printf("Total number of trailing zeros in %d is %d.", num, count);
return 0;
}
```

You can also short the above program using while loop.

## Program to count trailing zeros in a binary number using while loop

```
/**
* C program to count trailing zeros in a binary number using bitwise operator
*/
#include <stdio.h>
int main()
{
int num, count=0;
/* Input number from user */
printf("Enter any number: ");
scanf("%d", &num);
while(!(num & 1))
{
count++;
num >>= 1;
}
printf("Total number of trailing zeros = %d.", count);
return 0;
}
```

**Important note:** The statement `num >>= 1;`

is equivalent to `num = num >> 1;`

.

Read more about – Shorthand assignment operators in C.

`while(!(num & 1))`

is equivalent to `while((num & 1) == 0)`

.

Learn more – Program to count leading zeros in a binary number

Output

Enter any number: 48 Total number of trailing zeros in 48 is 4.

Happy coding 😉

### Recommended posts

- Bitwise operator programming exercises index.
- C program to total number of zeros and ones in a binary number.
- C program to convert decimal to binary number system using bitwise operator.
- C program to swap two numbers using bitwise operator.
- C program to check whether a number is even or odd using bitwise operator.