// Calculadora decimal a binario (sin recursividad)
#include<stdio.h>
int main(){
int i=0, n1, a[9999]; // 1) a[x] limita cuantos digitos
// pueden aparecer en el array.
printf("Decimal: "); // 2) Pedimos al usuario el no.decimal
scanf("%i",&n1); // se almacena en n1.
while(n1>0){ // 3) Mientras n1 sea mayor que 0
a[i] = n1%2; // introducimos en el array n1mod2
n1 /= 2; // almacenamos nuevo valor de n1, n1/2
++i; // nos desplazamos al siguiente digito
}
for(n1=i-1; n1>=0; --n1) // despues de imprimir:
printf("Binario: %d",a[n1]); // 4) La sentencia for esta invertida
printf("\n"); // de modo que imprima de dcha a izq.
return 0;
}
¿Cómo pasar de decimal a binario?
- Dividimos 35, 34 y 10 entre 2 de forma sucesiva hasta obtener un cociente igual a 1.
- 35 : 2 = 17 + 1 // 17 : 2 = 8 + 1 // 8 : 2 = 4 + 0 // 4 : 2 = 2 + 0 // 2 : 2 = 1 + 0
- 34 : 2 = 17 + 0 // 17 : 2 = 8 + 1 // 8 : 2 = 4 + 0 // 4 : 2 = 2 + 0 // 2 : 2 = 1 + 0
- 10 : 2 = 5 + 0 // 5 : 2 = 2 + 1 // 2 : 2 = 1 + 0
- Anotamos el último cociente, y a continuación los restos de derecha a izquierda.
- 35 = 100011 // 34 = 100010 // 10 = 1010
- Podemos hacer la comprobación con el programa de arriba :)