Program for Decimal to Binary Conversion in C
Decimal to Binary Conversion
Converting a decimal number to binary involves representing the number in base-2, where each digit is either 0 or 1.
We will explore three methods to perform this conversion using C programming.
Method 1: Using Bitwise Operators
We use bitwise operations to extract each bit from the number.
#include <stdio.h> void decimalToBinary_bitwise(int n) { for (int i = 31; i >= 0; i--) { printf("%d", (n >> i) & 1); } printf("\n"); } int main() { int num; printf("Enter a decimal number: "); scanf("%d", &num); decimalToBinary_bitwise(num); return 0; }
Method 2: Using Division by 2
We repeatedly divide the number by 2 and store the remainder.
#include <stdio.h> void decimalToBinary_division(int n) { int binary[32], i = 0; while (n > 0) { binary[i++] = n % 2; n /= 2; } for (int j = i - 1; j >= 0; j--) { printf("%d", binary[j]); } printf("\n"); } int main() { int num; printf("Enter a decimal number: "); scanf("%d", &num); decimalToBinary_division(num); return 0; }
Method 3: Using Recursion
We use recursion to keep dividing the number by 2 until it becomes 0, printing the remainder in reverse order.
#include <stdio.h> void decimalToBinary_recursive(int n) { if (n == 0) return; decimalToBinary_recursive(n / 2); printf("%d", n % 2); } int main() { int num; printf("Enter a decimal number: "); scanf("%d", &num); if (num == 0) printf("0"); else decimalToBinary_recursive(num); printf("\n"); return 0; }