Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fdvd en 13 Julio 2015, 17:27 pm



Título: transformar binario a decimal
Publicado por: fdvd en 13 Julio 2015, 17:27 pm
tengo un proble en c++ necesito hacer un codigo me ayude a transformar un numero binario en decimal y verificar si el numero que ingrese por teclado sea un numero binario preferentemente con funciones porfavor una respuesta prota gracias!!!!! ::) ::) ::) ::)


Título: Re: transformar binario a decimal
Publicado por: engel lex en 13 Julio 2015, 17:31 pm
y lo quieres listo? vamos a tu uni y presentamos por ti?

-.- no se hacen tareas, se resuelven dudas, muestra tu código, explica tu duda en detalle...

intentaste usar un buscador? en google.com (http://google.com) puedes colocar una busqueda y te da resultados relacionados, revisaste alguno?





Título: Re: transformar binario a decimal
Publicado por: Orubatosu en 13 Julio 2015, 18:29 pm
Introduce el numero. El modo de hacerlo como quieras, ya sea caracter a caracter o mediante un string. En el primer caso comprueba el ASCII que sea 1 o 0, en el segundo haz una rutina que tras el retorno de carro mida la logitud y haga un bucle que haga la misma comprobación.

Si lo tienes en un string, que sería lo mas sencillo, con sacar la longitud ya sabes de cuanto debe de ser el bucle. Inicializas un entero a cero, y a partir de ahi multiplicas cada cifra, ya sea cero o uno empezando por la izquierda por un numero que multiplicaras por 2 a cada ciclo. La primera vez 1, la segunda 2, 4, 8 etc

A cada vuelta acumulas el resultado en la variable anterior, y al final del bucle tienes el resultado

No me dirás que no te lo he dejado a huevo

También creo que tengo por ahi una rutina ya hecha que hace exactamente eso, pero me da mucha pereza ponerme a buscarla

De hecho, como la clase string puede usar iteradores, tienes una oportunidad de oro de hacerlo muy bonito


Título: Re: transformar binario a decimal
Publicado por: Gh057 en 13 Julio 2015, 18:44 pm
Hola fdvd, o bien aplicar el concepto de pila... vas agregando cada caracter a la pila mientras sea 0 ó 1 (sino retornas falso en la función booleana de carga) calculando la potencia con respecto al índice que vas llenando de la pila, y acumulándola... Al final tienes tu resultado en decimal mostrando dicho acumulador.

Es algo más complejo, pero bastante genérico, y puedes implementarlo en otros ejercicios... ya que en realidad es una variación de un analizador de símbolos equilibrados (entiéndase por ello (){}[]) mediante el uso de un autómata a pila.

-off: En ella debes comparar el si al llegar a un símbolo de cierre, tu cima de pila es uno semejante de apertura, si es así, disminuyes tu pila... y mantienes tu retorno booleano en verdadero; caso contrario, retornas falso (error de balanceo de fómula). Al final debes tener si o si tu pila vacía, o ha habido error en el ingreso de datos.- 

Saludos.