NOTA: (algunas funciones como; printf() y puts() eran para analisis y depuracion del programa las deje como comentarios), dejen comentario de como reducir el codigo por favor.
Código
//Autor: Jonathan Carrasco (GLAS) #include<stdio.h> #include<stdlib.h> main() { //int tarea; void Codificar(); //void Decodificar(); system("clear"); printf("**************************\n"); printf("******** Code 64 *********\n"); printf("**************************\n"); //printf(" Seleccione una tarea....\n\n"); //printf(" 1)Codificar base 64.\n 2)Decodificar base 64.\n"); //scanf("%d",&tarea); getchar(); //if(tarea==1) { Codificar(); } //if(tarea==2) { Decodificar(); } Codificar(); getchar(); system("clear"); return 0; } //------------------------------------------------------- void Codificar() { int i,n,c=1,r=0,p=7,s=0; char texto[10000],bin[80],cambio[6],store[15000],envio[6],a; void b_decimal(char valor_b[6]); printf("Ingrese texto a Codificar: "); gets(texto); printf("\n\n"); for(i=0;texto[i]!='\0';i++) { n=texto[i]; //printf(" %d ",n); while(n>=1) { r=n%2; n=n/2; if(r==1) { bin[p]='1'; p--; }//store[s]='1'; s++; } if(r==0) { bin[p]='0'; p--; }//store[s]='0'; s++; } } bin[p]='0'; p--; bin[8]='\0'; p=0; while(bin[p]!='\0') { store[s]=bin[p]; s++; p++; } //puts(bin); p=7; } store[s]='\0'; //puts(store); printf(" %d bits\n",s); s=0; while(store[s]!='\0') { for(p=0;p<=5;s++,p++) { envio[p]=store[s]; } envio[6]='\0'; //puts(envio); b_decimal(envio); } } //------------------------------------------------------- void b_decimal(char valor_b[6]) //funcion conversion binario-decimal { int c,n,v=0,r=0,m=0; //forma de conversion: 11001 -> 1*(2e4) + 1*(2e3) + 0*(2e2) + 0*(2e1) + 1*(2e0) = 16 + 8 + 0 + 0 + 1 = 25 while(valor_b[m]!='\0') { m++; } if(m==2) { valor_b[2]='0'; valor_b[3]='0'; valor_b[4]='0'; valor_b[5]='0'; valor_b[6]='\0'; } if(m==4) { valor_b[4]='0'; valor_b[5]='0'; valor_b[6]='\0'; } //puts(valor_b); for(c=5;c>=0;) { n=(valor_b[c]-'0'); v=v*2; if(v==0) v=1; n=n*v; c--; r=r+n; } //printf("%d ",r); if(r==0) { printf("A"); } if(r==1) { printf("B"); } if(r==2) { printf("C"); } if(r==3) { printf("D"); } if(r==4) { printf("E"); } if(r==5) { printf("F"); } if(r==6) { printf("G"); } if(r==7) { printf("H"); } if(r==8) { printf("I"); } if(r==9) { printf("J"); } if(r==10) { printf("K"); } if(r==11) { printf("L"); } if(r==12) { printf("M"); } if(r==13) { printf("N"); } if(r==14) { printf("O"); } if(r==15) { printf("P"); } if(r==16) { printf("Q"); } if(r==17) { printf("R"); } if(r==18) { printf("S"); } if(r==19) { printf("T"); } if(r==20) { printf("U"); } if(r==21) { printf("V"); } if(r==22) { printf("W"); } if(r==23) { printf("X"); } if(r==24) { printf("Y"); } if(r==25) { printf("Z"); } if(r==26) { printf("a"); } if(r==27) { printf("b"); } if(r==28) { printf("c"); } if(r==29) { printf("d"); } if(r==30) { printf("e"); } if(r==31) { printf("f"); } if(r==32) { printf("g"); } if(r==33) { printf("h"); } if(r==34) { printf("i"); } if(r==35) { printf("j"); } if(r==36) { printf("k"); } if(r==37) { printf("l"); } if(r==38) { printf("m"); } if(r==39) { printf("n"); } if(r==40) { printf("o"); } if(r==41) { printf("p"); } if(r==42) { printf("q"); } if(r==43) { printf("r"); } if(r==44) { printf("s"); } if(r==45) { printf("t"); } if(r==46) { printf("u"); } if(r==47) { printf("v"); } if(r==48) { printf("w"); } if(r==49) { printf("x"); } if(r==50) { printf("y"); } if(r==51) { printf("z"); } if(r==52) { printf("0"); } if(r==53) { printf("1"); } if(r==54) { printf("2"); } if(r==55) { printf("3"); } if(r==56) { printf("4"); } if(r==57) { printf("5"); } if(r==58) { printf("6"); } if(r==59) { printf("7"); } if(r==60) { printf("8"); } if(r==61) { printf("9"); } if(r==62) { printf("+"); } if(r==63) { printf("/"); } if(m==2) { printf("=="); } if(m==4) { printf("="); } //printf("\n"); } //funcionamiento todo OK.