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
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
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
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.
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.
Entonces...Podria transformarlo a cualquier base?
suena bien!
Esperen resultados!
;-)