Título: Programa convertidor de base numerica C++-->C (requiero ayuda) Publicado por: Daidronix en 9 Mayo 2014, 08:08 am Hola, tengo un programa de conversión de base numérica para cualquier base con un rango de 1 byte, el programa funciona correctamente, mi asunto es que esta programada en C++ y lo necesito en C, podría alguien ayudarme a pasarlo? o decirme como funcionan las funciones que aparecen?
Código: #include<iostream> #include<cmath> #include<bitset> using namespace std; //DECLARACION DE FUNCIONES: int baseCharAInt(char []); int numCharAInt(char[],double); void convierte(int ,int); int main(){ const char ask=168; //PARA QUE SALGA EL SIGNO "¿" char baseInChar[3],baseOutChar[3],repetir='s'; char numInChar[]={0,0,0,0,0,0,0,0}; int baseIn,baseOut,numIn; cout<<"\t\t*BASES: HEX=X16 DEC=X10 OCT=X8 BIN=X2\n\n"; while(repetir=='s'||repetir=='S'){ cout <<"--->"<<ask<<"EN QUE BASE ESTA TU NUMERO ORIGINAL?: "; cin >>baseInChar; baseIn=baseCharAInt(baseInChar); if(baseIn==0)cout<<"\n\n \t\tBASE NO VALIDA!!!\n"; if(baseIn!=0){ cout <<"\n--->"<<ask<<"A QUE BASE DESEAS CONVERTIR TU NUMERO?: "; cin >>baseOutChar; baseOut=baseCharAInt(baseOutChar);if(baseOut==0)cout<<"\n\n \t\tBASE NO VALIDA!!!\n"; } if(baseIn!=0&&baseOut!=0){ cout <<"\n--->"<<ask<<"CUAL ES EL DICHOSO NUMERO A CONVERTIR?: "; cin >>numInChar; numIn=numCharAInt(numInChar,baseIn); cout<<"\n\n\t\t*Muy bien. Tu numero en base "<<baseOutChar<< " es: "; convierte(numIn,baseOut); } cout<<"\n\n\n"<<ask<<"Quieres convertir algun otro numerillo? (S/N): "; cin>>repetir; cout<<"\n\n"; cin.get(); } } //CONVIERTE LA BASE DE CHAR A INT int baseCharAInt(char baseChar[3]){ int base; if(baseChar[1]=='1'&&baseChar[2]=='6') base=16; else if(baseChar[1]=='1'&&baseChar[2]=='0') base=10; else if(baseChar[1]=='8')base=8; else if(baseChar[1]=='2')base=2; else base=0; return base; } //CONVIERTE EL NUMERO DE CHAR A SU VALOR EN FORMATO DOUBLE: int numCharAInt(char numChar[],double base){ int length; for(int i=1;numChar!=0;i++) length=i+1; int num=0; int numArr[length]; for(int j=0;j<length;j++){ //USANDO ASCII PARA DARLE UN VALOR NUMERICO A LOS CARACTERES DE '1'-'9', 'A'-'F' y 'a'-'f' if(numChar[j]<=57) numArr[j]=numChar[j]-48; else if(numChar[j]<=70) numArr[j]=numChar[j]-55; else if(numChar[j]<=102) numArr[j]=numChar[j]-87; } for(int k=0;k<=length-1;k++) num+=numArr[k]*pow(base,length-1-k); return num; } //MUESTRA EL VALOR DEL NUMERO EN LAS DISTINTAS BASES: void convierte(int num,int baseOut){ switch(baseOut){ case 10: cout<<num; break; case 16: cout<<noshowbase<<hex<<num;break; case 8: cout<<noshowbase<<oct<<num;break; case 2: cout <<bitset<8>(num);break; } } Título: Re: Programa convertidor de base numerica C++-->C (requiero ayuda) Publicado por: eferion en 9 Mayo 2014, 09:08 am Si lees las normas del foro... una de ellas dice: "No se hacen tareas".
Empieza a traducirlo tú y cuando te atasques avísanos. |