Foros del Web » Programación para mayores de 30 ;) » Programación General »

Dev c++ (de decimal a binario,octal y hexadecimal)

Estas en el tema de Dev c++ (de decimal a binario,octal y hexadecimal) en el foro de Programación General en Foros del Web. Hola necesito saber como puedo hacer un programa que relaize estas transformaciones, he intentado hacerlo con algunas secuenciasde escape pero no he encontrado para binario, ...
  #1 (permalink)  
Antiguo 29/06/2009, 18:37
Avatar de darwin2201  
Fecha de Ingreso: octubre-2008
Mensajes: 106
Antigüedad: 15 años, 6 meses
Puntos: 1
De acuerdo Dev c++ (de decimal a binario,octal y hexadecimal)

Hola necesito saber como puedo hacer un programa que relaize estas transformaciones, he intentado hacerlo con algunas secuenciasde escape pero no he encontrado para binario, y la de octal siempre imprime 0...me parece que la unica que sirve es la hexadecimal pero no estoy seguro
  #2 (permalink)  
Antiguo 04/07/2009, 15:00
Avatar de FTech  
Fecha de Ingreso: julio-2009
Mensajes: 88
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Dev c++ (de decimal a binario,octal y hexadecimal)

Si tu objetivo es pasar de decimal a los otros 3 sistemas, te recomiendo que utilices el método de divisón reiterada para comenzar.

Mira este algoritmo convierte cualquier numero entero en base 10, a cualquier base entre 1 y 10.

Código Cpp::
Ver original
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     int dig;
  8.     int iNum,iBase;
  9.     cin>>iNum;
  10.     cin>>iBase;
  11.     double k=0;
  12.     int iNumR=iNum;
  13.     int iNN=0;
  14.     while(iNumR!=0)
  15.     {
  16.         dig=iNumR&#37;iBase;
  17.         iNN=iNN+dig*pow(10,k);
  18.         iNumR=iNumR/iBase;
  19.         k++;
  20.     }
  21.     cout<<"Numero:"<<iNum<<" convertido:"<<iNN<<" en base:"<<iBase;
  22.     system("pause");
  23.     return 0;
  24. }
  #3 (permalink)  
Antiguo 06/07/2009, 08:55
Avatar de FTech  
Fecha de Ingreso: julio-2009
Mensajes: 88
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Dev c++ (de decimal a binario,octal y hexadecimal)

He estado trabajando en el problema. Aqui tengo un pequeño avance. Falta mejorar el tema de la salida con bases mayores a 10.

Código c++:
Ver original
  1. #include <iostream>
  2. #include <cmath>
  3. #include <cstring>
  4.  
  5. int DivReit(int iNum,int iBase);
  6. char* ConBase(int cNum,int cBase);
  7. char CDig(int digtconv);
  8.  
  9.  
  10. int main()
  11. {
  12.     int iNuma,iBaseg;
  13.     std::cout<<"Ingrese numero"<<std::endl;
  14.     std::cin>>iNuma;
  15.     std::cout<<"Ingrese base a convertir"<<std::endl;
  16.     std::cin>>iBaseg;
  17.     if(iBaseg<10){std::cout<<"Numero convertido:"<<DivReit(iNuma,iBaseg)<<std::endl;}
  18.     else{std::cout<<"Numero convertido:"<<ConBase(iNuma,iBaseg)<<std::endl;}
  19.     system("pause");
  20.     return 0;
  21. }
  22.  
  23. int DivReit(int iNum,int iBase)
  24. {
  25.     int k=0;
  26.     int suma=0;
  27.     int dig;
  28.     while(iNum!=0)
  29.     {
  30.         dig=iNum&#37;iBase;
  31.         suma=suma+dig*pow(10,k);
  32.         iNum=iNum/iBase;
  33.         k++;
  34.     }
  35.     return suma;
  36. }
  37.  
  38. char* ConBase(int cNum,int cBase)
  39. {
  40.     char* mystr;
  41.     int pos=0;
  42.     char sNum[10];
  43.     int dig,n;
  44.     char cdig;
  45.     while(cNum!=0)
  46.     {
  47.         dig=cNum%cBase;
  48.         cdig=CDig(dig);//Convierto mi digito
  49.         sNum[pos]=cdig;
  50.         cNum=cNum/cBase;
  51.         pos++;
  52.     }
  53.     n=strlen(sNum);
  54.     for(int i=0;i<n/2;i++)//Invierto mi numero
  55.     {
  56.         char aux;
  57.         aux=sNum[i];
  58.         sNum[i]=sNum[n-i-1];
  59.         sNum[n-i-1]=aux;
  60.     }
  61.     mystr=sNum;
  62.     return ++mystr;
  63. }
  64.  
  65. char CDig(int digtconv)
  66. {
  67.     char Mychars[]={'0','1','2','3','4','5','7','8','9','A','B','C','D','E','F'};
  68.     if(digtconv>9)
  69.     {
  70.         digtconv=Mychars[digtconv-1];
  71.         return digtconv;
  72.     }
  73.     else
  74.     {
  75.         digtconv=Mychars[digtconv];
  76.         return digtconv;
  77.     }
  78. }
  #4 (permalink)  
Antiguo 06/07/2009, 19:05
Avatar de darwin2201  
Fecha de Ingreso: octubre-2008
Mensajes: 106
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Dev c++ (de decimal a binario,octal y hexadecimal)

gracia primero que nada pero...
esto esta en borlan , TC....no se se puede pasar a dev c??

yo lo intentare pero dime si se puede...

y te repito...
muchas gracias por las molestias..
  #5 (permalink)  
Antiguo 06/07/2009, 19:29
Avatar de FTech  
Fecha de Ingreso: julio-2009
Mensajes: 88
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Dev c++ (de decimal a binario,octal y hexadecimal)

Hola darwin, cualquier código mientras c++ se puede pasar a cualquier compilador. Si quieres utilizar dev c++, no creo que tengas problemas, unicamente creo que tienes que cambiar cstring por string.h y cmath por math.h.

No lo compilé en borland.

De nada... A mi también me sirve para practicar.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:28.