dato de entrada:
10001110001010101010
dato de salida debería ser:
hola
PERO el dato de salida que me da es este:
hola
EL CODIGO LO INSERTO ACA ABAJO:
------------------------------------------------------------------------------------------------------
Código
#include<stdio.h> #include<string.h> //////////////////////////////////////////////////// //funcion para elevar potencias///////////////////// int potencia(int base, int exponente){ int i,resultado; resultado=1; if (exponente > 0) for (i=0;i<exponente;i++){ resultado=base*resultado; }; return resultado; } /////////////////////////////////////////////////////////////////// ////////funcion para cambiar base binario a decimal//////////////// void binario_atreintaidos(char *binario,char *treintaidos){ int porte,i,j,cont,parcial,letras; i=porte-1; //i almacena la cantidad de datos del binario letras=porte/5; for(j=0 ; porte>0 ; j++){ cont=0; parcial=0; while(cont<5){ if (binario[i]=='1') // correspondiente potencia de 2 en caso de haber un 1 parcial= potencia(2,cont) + parcial; cont++; i--; }; //endwhile porte=i; cont=letras-j; cont--; switch (parcial){ case 0: treintaidos[cont]='0';break; case 1: treintaidos[cont]='1'; break; case 2: treintaidos[cont]='2'; break; case 3: treintaidos[cont]='3'; break; case 4: treintaidos[cont]='4'; break; case 5: treintaidos[cont]='5'; break; case 6: treintaidos[cont]='6'; break; case 7: treintaidos[cont]='7'; break; case 8: treintaidos[cont]='8'; break; case 9: treintaidos[cont]='9'; break; case 10: treintaidos[cont]='a'; break; case 11: treintaidos[cont]='b'; break; case 12: treintaidos[cont]='c'; break; case 13: treintaidos[cont]='d'; break; case 14: treintaidos[cont]='e'; break; case 15: treintaidos[cont]='f'; break; case 16: treintaidos[cont]='g'; break; case 17: treintaidos[cont]='h'; break; case 18: treintaidos[cont]='i'; break; case 19: treintaidos[cont]='j'; break; case 20: treintaidos[cont]='k'; break; case 21: treintaidos[cont]='l'; break; case 22: treintaidos[cont]='m'; break; case 23: treintaidos[cont]='n'; break; case 24: treintaidos[cont]='o'; break; case 25: treintaidos[cont]='p'; break; case 26: treintaidos[cont]='q'; break; case 27: treintaidos[cont]='r'; break; case 28: treintaidos[cont]='s'; break; case 29: treintaidos[cont]='t'; break; case 30: treintaidos[cont]='u'; break; case 31: treintaidos[cont]='v'; break; case 32: treintaidos[cont]='w'; break; };//endswitch }; //endfor }; //endfuncion /////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// int main(){ char cadena[50],treintaidos[50]; binario_atreintaidos(cadena,treintaidos); return 0; }