Floating point number to Binary

Language: C

 

 
#include <stdio.h>
#define fpf(x) ((x) - (int) (x)) //fractional part function
void dectobin_i(int x) {
	if (x == 0) return;
	dectobin_i(x/2);
	printf("%d", x%2);
}
void dectobin_f(double x) { // x lies between 0 and 1
	if (x == 0) return;
	printf("%d", (int) (x*2));
	dectobin_f(fpf(x * 2));	
}
int main()
{
	double num;
	printf("Enter the number: ");
	scanf("%lf", &num);
	printf("The binary equivalent of %lf is ", num);
	dectobin_i((int) num);
	printf(".");
	dectobin_f(fpf(num));
	printf("\n");
	return 0;
}



Comments