Convertir a binario

Hola, una preguntilla, ¿hay alguna manera de converir una cadena numérica decimal a binario? ¿Y desde hexadecimal a binario? Le he dado vueltas y vueltas al asunto y no encuentro clave alguna para realizar este proceso.
Gracias
2

2 Respuestas

4.825 pts.
En realidad no recuerdo bien si hay alguna función que permita hacer eso pero si no la hay se puede hacer. (Por lo menos no recuerdo si hay una función en ansi c).
Tienes que crear una función que lo haga, explicarlo aquí es un poco complejo, busca un libro de matemáticas donde vengan conversiones de bases o incluso uno de c/c++, un libro en donde viene como hacerlo es "Como programar en C/C++" de H.P. Deitel (viene en los apéndices). En realidad tu pregunta es más matemática que de programación, sabiéndolo hacer matemáticamete es fácil pasarlo a c.
Ejemplo convertir 3 a binario
3/2=1 el modulo = 1
tomamos el 1 que resulto de la división (no el modulo) y lo dividimos de nuevo entre dos
1/2 = 0 modulo 1
entonces 3 en binario es 11
la primera pósicion del 1 vale 2 elevado a la 0 por 1 es igual a 1 (2^0*1 = 1) mas lo que tienes en la segunda posición 2^1*1 = 2 entonces 2+1 = 3
en realidad son puras divisiones.
Lo mismo para hexadecimal solo que divides entre 16 la bronca aquí es como demonios expresas un hexadecimal si solo hay 10 números hay que representar el 10 como A 11 como B así sucesivamente lo que vas a hacer es crear una variable tipo carácter para guardar el numero para guardar o verificar el numero tendrías que crear un apuntador a esa cadena e ir moviendo el apuntador de posición.
Si comienzas tu programa y tienes más dudas o algo no te sale mandame lo que tengas en c/c++ a [email protected]
3.225 pts.
de decimal a binaria:
Haces divisiones sucesivas por dos hasta que la división no sea entera, y pones un 1 al principio del numero y los residuos del ultimo al primero
Por ejemplo, para 8:
8/2 = 4, residuo = 0
4/2 = 2, residuo = 0
2/2 = 1, residuo = 0
primero, el 1, luego los residuos del ultimo al primero. 1000
para 5:
5/2 = 2, residuo 1
2/2 = 1, residuo 0
pones el 1, luego los residuos de adelante hacia atrás o sea 101
De hexa a binario: tomas cada dígito del numero de izquierda a derecha y lo conviertes a binario basado en su valor decimal, y vas poniendo los resultados, con las 4 cifras de izquierda a derecha, por ejemplo:
A2B
A=10 decimal = 1010 binario
2=2 decimal = 0010 binario
B=11 decimal = 1011 binario
Ahora todos juntos:
101000101011

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas