Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: gOoComeDy en 24 Septiembre 2011, 03:22 am



Título: Programa para convertir bases numericas
Publicado por: gOoComeDy en 24 Septiembre 2011, 03:22 am
Hola!, apenas he empezado a programar y me han dicho que C es buena base.
sin embargo ya se algo y desde hace dos semanas me preguntaba como puedo hacer
un programa que convierta de base decimal cualquier numero a cualquier base (Obviamente dada por el usuario) sin muchas limitaciones, me podrian ayudar a idearlo correctamente? :D


Título: Re: Programa para convertir bases numericas
Publicado por: .mokk. en 24 Septiembre 2011, 08:21 am
Lo siento lei mal, nose como fue que lei sumatoria de bases jeje

Aun asi dejo lo que comente aqui por si interesa
http://pastebin.com/f9hQeCs5


Título: Re: Programa para convertir bases numericas
Publicado por: rir3760 en 25 Septiembre 2011, 01:41 am
Solo tienes que tomar el numero y dividirlo por la base una y otra vez hasta que termine en cero. En cada iteracion el residuo de la división (el modulo) te dará el dígito menos significativo (hasta ese momento).

Inténtalo primero con papel y lápiz usando las bases mas utilizadas (8, 10 y 16).

Un saludo


Título: Re: Programa para convertir bases numericas
Publicado por: fary en 25 Septiembre 2011, 13:19 pm
Para convertir números de una base a otra tienes que dividir por la base a la que lo quieres pasar, ejemplo...

125 por ejemplo a octal, lo que tenemos que hacer es dividir sucesivamente el número entre la base (en este caso 8 ya que queremos pasarla a octal) asta que el cociente sea mas pequeño que el dividendo  entonces se colocara el ultimo cociente y los demas restos al revez, me explico mejor  haciendolo:

125/8 = 15 en el cociente  y de resto 5

aora volvemos a dividir pero aora ya dividimos entre el cociente

15/8 = 7 de resto y 1 en el cociente.

Ya acabamos las cuentas ya que el cociente que nos a dado es menor a la base a la que lo queremos pasar aora tenemos que colocar los números

El cociente de la ultima division 1 y el resto de la ultima division 7 y el resto de la penultima division 5 dan 175 y efectivamente 125 en base 10 (decimal) es 175 en base 8 (octal) compruebalo con la calculadora y verás  :P

Aora para hacer la inversa pasarlo a decimal lo que hay que hacer es aplicar esta fórmula:

(http://img710.imageshack.us/img710/8245/clipimage002ja.jpg)

te lo ago para que lo veas tambien

1·8^2 + 7·8^1 + 5·8^0 = 64 +56 + 5= 125 en decimal. En esta formula los resultados se suman no se colocan.

Es igual para pasarlo a todas las bases y para hacer la inversa :P  espero haberte ayudado.

saludos.


Título: Re: Programa para convertir bases numericas
Publicado por: тαптяα en 25 Septiembre 2011, 18:16 pm
esta imagen te ayudará:

(http://img684.imageshack.us/img684/620/dibujohwx.jpg)

Tu tendrás que saber como almacenar el resto (una pistita: "mod" ) y realmente eso es todo.


Título: Re: Programa para convertir bases numericas
Publicado por: gOoComeDy en 28 Septiembre 2011, 01:20 am
Entonces...Podria transformarlo a cualquier base?
suena bien!
Esperen resultados!
 ;-)