# C program to count the number of leading zeros in a binary number

Here, we are going to learn how to count the number of leading zeros in a binary number in C programming language?
Submitted by Nidhi, on July 31, 2021

## Problem statement

Read an integer number from the user, find the leading zeros in the input binary number using C program.

## C program to count the number of leading zeros in a binary number

The source code to count the number of leading zeros in a binary number is given below. The given program is compiled and executed using GCC compile on UBUNTU 18.04 OS successfully.

```// C program to count the number of leading zeros
// in a binary number

#include <stdio.h>
#include <malloc.h>

int main()
{
int num = 0;
int cnt = 31;

printf("Enter the digit: ");
scanf("%d", &num);

printf("Binary number: ");
while (cnt >= 0) {
if (num & (1 << cnt))
printf("1");
else
printf("0");
cnt--;
}

cnt = 0;
while (!(num & (1 << 31))) {
num = (num << 1);
cnt++;
}

printf("\nNumber of leading zero's are: %d\n", cnt);

return 0;
}
```

### Output

```RUN 1:
Enter the digit: 8
Binary number: 00000000000000000000000000001000
Number of leading zero's are: 28

RUN2:
nter the digit: 65535
Binary number: 00000000000000001111111111111111
Number of leading zero's are: 16

RUN 3:
Enter the digit: 1
Binary number: 00000000000000000000000000000001
Number of leading zero's are: 31
```

### Explanation

Here, we read an integer number and print the corresponding binary number. Then we count the leading zeros in binary numbers and printed the result on the console screen.