Program to convert binary number to decimal and decimal to binary in C

Source Code

// 37. Program to convert binary number to decimal and decimal to binary
// Arpan Das - CST 2nd Year (VOCLET)

#include <stdio.h>
//#include <conio.h>
#include <math.h>

int b2d(int);
int d2b(int);

int main () {
	int num, ch;
	//clrscr();

	do {
		printf("\n\t..:: convert binary number to decimal and vice-versa ::..\n\n");
		printf("\n1. Decimal to Binary\n2. Binary to Decimal\n3. Exit\nPlease enter your choice: ");
		scanf("%d", &ch);

		if (ch == 1) {
			printf("\nPlease enter a decimal number: ");
			scanf("%d", &num);
			printf("\nResult: %d", d2b(num));
		} else if (ch == 2) {
			printf("\nPlease enter a binary number: ");
			scanf("%d", &num);
			printf("\nResult: %d", b2d(num));
		}
	} while (ch >= 1 && ch <= 2);
	return 0;
}

int d2b(int num) {
	int r = 0, dig = 0; // result, digit

	while (num != 0) {
		r += (num%2) * (int)(pow(10.0, dig++) + 0.5);
		num /= 2;
	}

	return r;
}

// 11001
// (1)*2^4 + (1)*2^3 + (0)*2^2 + (0)*2^1 + (1)*2^0
int b2d(int num) {
	int dig = 0, r = 0;

	while (num != 0) {
		r += (num%2) * (int)(pow(2, dig++) + 0.5);
		num /=10;
	}

	return r;
}

Output

	..:: convert binary number to decimal and vice-versa ::..


1. Decimal to Binary
2. Binary to Decimal
3. Exit
Please enter your choice: 1

Please enter a decimal number: 14

Result: 1110
	..:: convert binary number to decimal and vice-versa ::..


1. Decimal to Binary
2. Binary to Decimal
3. Exit
Please enter your choice: 2

Please enter a binary number: 1010

Result: 10
	..:: convert binary number to decimal and vice-versa ::..


1. Decimal to Binary
2. Binary to Decimal
3. Exit
Please enter your choice: 3

Leave a Reply

Note: Your email address will not be published. Required fields are marked *