This is a C Program to convert a decimal number to binary & count the number of 1s.

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); }

In this C program, we are reading the decimal number using ‘num’ variable. A decimal number system is a base 10 number system using digits for 0 to 9 whereas binary number system is base 2 and uses 0 and 1. Check whether the number is less than or equal to zero. Divide the number by 2 and store the remainder in the array. Increase the length of the array by 1. After the execution of while loop, print the binary number and the number of 1’s.

$ 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