Programación General > C/C++
Convertidora Binario a otros sist
vibit:
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++ ---#include <cstdlib>#include <iostream>#include <math.h>#include <stdio.h>#include <stdlib.h> using namespace std; int main(int argc, char *argv[]){ cout<<"----Proyecto Final----n"; cout<<"Convertidora de Numero Binarios a Decimal, Octal y Hexadecimaln"; cout<<"Conversor de Numero Binarios a Decimal, Octal y Hexadecimalnnn"; int longitud=0;int posicion; cout<<"Ingrese la LONGITUD del Numero BINARIO: ";cin>>longitud;cout<<"nn"; int vec[longitud]; int solucion=0;int solucion2; for(posicion=0; posicion<=longitud-1; posicion++){ int num=0; do { cout<<"Ingrese el El Numero "<<posicion+1<<"nn"; cin>>vec[num]; cout<<"n"; } while(vec[num]>1 || vec[num]<0); solucion2 = pow(2,longitud-1-posicion)*vec[num]; solucion = solucion2 + solucion; } cout<<"El Numero en decimal es: "<<solucion<<"n"; int x,y;x=solucion%8;y=solucion/8; cout<<"El Numero en octal es:"<<y<<x<<"nnn"; system("PAUSE"); return EXIT_SUCCESS;}
m0skit0:
Binario -> Hexadecimal es lo más fácil que existe:
--- Código: Text ---Hex Binario0 00001 00012 00103 00114 01005 01016 01107 01118 10009 1001A 1010B 1011C 1100D 1101E 1110F 1111 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:
y como hago para agrupar de 4 en 4 e igualarlo a el numero en hexadecimal?
eso es lo q no se
m0skit0:
Date un poco de tiempo y si sigues atascado lo hablamos.
:comp: :hitcomp:
diego.martinez:
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.
Navegación
[#] Página Siguiente
Ir a la versión completa