This C Program converts a decimal number into binary & count the number of 1s. The program uses module operation and multiplication with base 2 operation for conversion. It also uses modulo operation to check for 1’s and accordingly increments the count of 1s.

Here is source code of the C program to convert a decimal number to binary & count the number of 1s. The C program is successfully compiled and run on a Linux system. The program output is also shown below.

`/*`

`* C program to accept a decimal number and convert it to binary`

`* and count the number of 1's in the binary number`

`*/`

`#include <stdio.h>`

void main()

`{`

long num, decimal_num, remainder, base = 1, binary = 0, no_of_1s = 0;

printf("Enter a decimal integer \n");

scanf("%ld", &num);

decimal_num = num;

while (num > 0)

`{`

remainder = num % 2;

`/* To count no.of 1s */`

if (remainder == 1)

`{`

`no_of_1s++;`

`}`

binary = binary + remainder * base;

num = num / 2;

base = base * 10;

`}`

printf("Input number is = %d\n", decimal_num);

printf("Its binary equivalent is = %ld\n", binary);

printf("No.of 1's in the binary number is = %d\n", no_of_1s);

`}`

$ cc pgm46.c $ a.out Enter a decimal integer 134 Input number is = 134 Its binary equivalent is = 10000110 No.of 1's in the binary number is = 3

**Sanfoundry Global Education & Learning Series – 1000 C Programs.**

Here’s the list of Best Reference Books in C Programming, Data-Structures and Algorithms

If you wish to look at other example programs on Simple C Programs, go to Simple C Programs. If you wish to look at programming examples on all topics, go to C Programming Examples.