In this blog post, we learn how to write a C program to convert decimal to binary number?. We will write the C program to convert decimal to binary number. Write a C program to input the decimal number and convert it to a binary number. How to convert decimal to binary number in C programming. Logic to convert decimal to binary number in C.
Example,
Input: 5 Output: 101 Input: 9 Output: 1001
Logic to convert decimal to binary number:
1. Ask the user to enter the decimal number.
2. Now perform modulo division on the number by 2 and store the remainder in an array.
binaryNum[i] = num % 2;
3. Now Divide the number by 2.
num = num / 2;
4. Repeat steps 2 and 3 until the number is greater than zero.
5. In the last we will print the array in reverse order.
#include <stdio.h> #define CHAR_SIZE 8 #define ARRAY_SIZE sizeof(int)* CHAR_SIZE int main() { // counter for binary array int i = 0,j=0; //num for decimal number int num; //Array to store binary number int binaryNum[ARRAY_SIZE]; printf("Enter decimal number: "); scanf("%d", &num); while (num > 0) { binaryNum[i] = num % 2; num = num / 2; i++; } // printing binary array in reverse order for (j = i - 1; j >= 0; j--) { printf("%d",binaryNum[j]); } return 0; }
Output:
Enter decimal number: 10
1010
Code Analysis,
Suppose num is 10.
Step 1: Remainder when 10 is divided by 2 is zero. Therefore, binaryNum[0] = 0.
Step 2: Divide 10 by 2. New number is 10/2 = 5.
Step 3: Remainder when 5 is divided by 2 is 1. Therefore, binaryNum[1] = 1.
Step 4: Divide 5 by 2. New number is 5/2 = 2.
Step 5: Remainder when 2 is divided by 2 is zero. Therefore, binaryNum[2] = 0.
Step 6: Divide 2 by 2. New number is 2/2 = 1.
Step 7: Remainder, when 1 is divided by 2, is 1. Therefore, binaryNum[3] = 1.
Step 8: Divide 1 by 2. New number is 1/2 = 0.
Step 9: Since number becomes = 0. Print the array in reverse order. Therefore the equivalent binary number is 1010.
We can also convert decimal to binary without using arrays. So let’s see the code,
#include <stdio.h> //typedef to avoid long name typedef unsigned long long int ULLINT; // Function to return the binary // equivalent of decimal value num ULLINT decimalToBinary(int num) { // To store the binary number ULLINT binNum = 0; int cnt = 0; while (num != 0) { int rem = num % 2; ULLINT c = pow(10, cnt); binNum += rem * c; num /= 2; // Count used to store exponent value cnt++; } return binNum; } int main() { //num for decimal number int num; printf("Enter decimal number: "); scanf("%d", &num); //Called function printf("%d",decimalToBinary(num)); return 0; }
Output:
Enter decimal number: 67
1000011
We can use bitwise operators to convert decimal numbers into binary numbers.
#include <stdio.h> #define CHAR_SIZE 8 #define INT_BITS sizeof(int)* CHAR_SIZE // Function that convert Decimal to binary void decimalToBinary(unsigned int n) { int i; for (i = (INT_BITS -1 ); i >= 0; i--) { int k = n >> i; if (k & 1) { printf("1"); } else { printf("0"); } } } int main() { //num for decimal number unsigned int num; printf("Enter decimal number: "); scanf("%u", &num); //Called function decimalToBinary(num); return 0; }
Output:
Enter decimal number: 10
00000000000000000000000000001010
Recommended Post:
- C Programming Courses And Tutorials.
- CPP Programming Courses And Tutorials.
- Python Courses and Tutorials.
- C program to decimal to octal number
- Convert decimal to binary number
- C program to decimal to binary using recursion and without using power operator
- Program to decimal to binary number using recursion
- C program to convert decimal to binary without using arithmetic operators.