Título: ayuda codigo para pasar de decimal a coma flotante iee 754 Publicado por: rx22 en 12 Octubre 2015, 22:07 pm Tengo que hacer un programa para pasar un float a binario, con el formato coma flotante. De momento llevo este codigo para pasarlo primero a binario, me sale bien la parte entera, pero no entiendo el problema que hay al intentar meter la decimal:
#include<stdio.h> #include <string.h> #include <stdlib.h> void vuelta( char* volteador, char* definitivo){ char aux; while(volteador>definitivo) aux=*volteador, *volteador--=*definitivo, *definitivo++=aux; } void dconversor(float num,char* dbin){ static char n[]="01,"; float decimales=num; do{ decimales=decimales*2; if(decimales<1.0){ *dbin++=n[0]; } if (decimales>=1.0){ *dbin++=n[1]; decimales =decimales-1; } }while(decimales!=0); } char* conversor(float num, char* bin){ static char n[]="01"; int pEntera; float pDecimal; pEntera =(int)num;//casting a entero pDecimal=num-pEntera; char* aux=bin; div_t rest; int base=2; int i =0; int close =1; int contador=0; char* str; int z; // pasa a base 2 , pero al reves do{ rest=div(pEntera,base); *aux++= n[rest.rem]; } while(pEntera=rest.quot); //le da la vuelta vuelta(aux-1,bin); dconversor(pDecimal,bin-1); return bin; } int main() { char base2[32]; float num; char dbase2[32]; scanf("%f",&num); printf("el resultado en base 2 es: %s,",conversor(num,base2)); return 0; } |