• Jueves 14 de Noviembre de 2024, 23:12

Autor Tema:  Convertidora Binario a otros sist  (Leído 1609 veces)

vibit

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Convertidora Binario a otros sist
« en: Jueves 12 de Marzo de 2009, 00:05 »
0
hola amigos es mi primer post. necesito su ayuda, tengo q hacer un convertidor de numeros binarios a decimal octal y hexadecimal, ya e logrado convertir a octal y a decimal pero a hexadeciman no encuentro la manera, me dijeron q agregando stdio.h y stdlib.h pero nose como usarlas.

aqui les mando el codigo para q vean como voy y si puedo arreglar algo...

Código: C++
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <math.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6.  
  7. using namespace std;
  8.  
  9. int main(int argc, char *argv[])
  10. {
  11.    
  12.    
  13.     cout<<"----Proyecto Final----n";
  14.     cout<<"Convertidora de Numero Binarios a Decimal, Octal y Hexadecimaln";
  15.  
  16.    
  17.  
  18.     cout<<"Conversor de Numero Binarios a Decimal, Octal y Hexadecimalnnn";
  19.    
  20. int longitud=0;
  21. int posicion;
  22.  
  23. cout<<"Ingrese la LONGITUD del Numero BINARIO: ";cin>>longitud;cout<<"nn";
  24.  
  25. int vec[longitud];
  26.  
  27. int solucion=0;
  28. int solucion2;
  29.  
  30. for(posicion=0; posicion<=longitud-1; posicion++)
  31. {
  32.     int num=0;
  33.     do
  34.     {
  35.         cout<<"Ingrese el El Numero "<<posicion+1<<"nn";
  36.         cin>>vec[num];
  37.         cout<<"n";
  38.    
  39.     } while(vec[num]>1 || vec[num]<0);
  40.  
  41.    
  42.      
  43.      solucion2 = pow(2,longitud-1-posicion)*vec[num];
  44.      solucion = solucion2 + solucion;
  45.  
  46. }
  47.  
  48. cout<<"El Numero en decimal es: "<<solucion<<"n";
  49.  
  50. int x,y;
  51. x=solucion%8;
  52. y=solucion/8;
  53.  
  54. cout<<"El Numero en octal es:"<<y<<x<<"nnn";
  55.              
  56.                        
  57.    
  58.     system("PAUSE");
  59.     return EXIT_SUCCESS;
  60. }
  61.  
  62.  

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Convertidora Binario a otros sist
« Respuesta #1 en: Jueves 12 de Marzo de 2009, 01:36 »
0
Binario -> Hexadecimal es lo más fácil que existe:

Código: Text
  1. Hex  Binario
  2. 0      0000
  3. 1      0001
  4. 2      0010
  5. 3      0011
  6. 4      0100
  7. 5      0101
  8. 6      0110
  9. 7      0111
  10. 8      1000
  11. 9      1001
  12. A      1010
  13. B      1011
  14. C      1100
  15. D      1101
  16. E      1110
  17. F      1111
  18.  
Sólo hay que agrupar los bits de cuatro en cuatro y sustituírlos por el dígito hexadecimal que corresponda, por ejemplo:

110111001010101111001101101100 = 0011 0111 0010 1010 1111 0011 0110 1100 = 372AF36C

Salud

vibit

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Convertidora Binario a otros sist
« Respuesta #2 en: Jueves 12 de Marzo de 2009, 01:50 »
0
y como hago para agrupar de 4 en 4 e igualarlo a el numero en hexadecimal?
eso es lo q no se

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Convertidora Binario a otros sist
« Respuesta #3 en: Jueves 12 de Marzo de 2009, 09:49 »
0
Date un poco de tiempo y si sigues atascado lo hablamos.  

 :comp:  :hitcomp:

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: Convertidora Binario a otros sist
« Respuesta #4 en: Jueves 12 de Marzo de 2009, 20:46 »
0
bueno, si tienes los 0s y 1s en un array, para pasarlo de binario  a decimal solo tienes que ir leyendolos del final al principio y haciendo
mi_valor = mi_valor<<1 | (( array[elemento]=='1') ? 1 : 0);

con esto conviertes cualquier cadena de ceros y unos ascii a un numero, que puede ser decimal o lo que quieras una vez lo tengas en la variable.

vibit

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Convertidora Binario a otros sist
« Respuesta #5 en: Viernes 13 de Marzo de 2009, 22:44 »
0
muchas gracias a los 2 pero les comento q apenas estoy aprendiendo a programar, lo maximo q se hacer son vectores por eso les pedia ayuda pero ya e logrado pasarlo a hexadecimal.

les dejo aqui la solucion q encontre.

Código: C++
  1. cout<<"El Numero en hexadecimal es:"<<hex<<solucion<<"nnn";
  2.  

con esta unica linea de codigo el programa te convertira automaticamente de decimal a hexadecimal, previamente hay q convertir el numero a decimal y totalisarlo en una variable para poder usar este codigo.

una observacion, no hay q identar el hex ya que si lo identas te va a dar error.

muchas gracias a los 2 por su ayuda

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Convertidora Binario a otros sist
« Respuesta #6 en: Lunes 16 de Marzo de 2009, 09:47 »
0
Cita de: "vibit"
con esta unica linea de codigo el programa te convertira automaticamente de decimal a hexadecimal, previamente hay q convertir el numero a decimal y totalisarlo en una variable para poder usar este codigo.
Pues claro que sí y también:

Código: C
  1. printf("%x", solucion);
  2.  
pero creíamos que la cuestión trataba de calcularlo uno mismo, porque funciones y librerías para hacerlo ya las hay  -_-