codice:
#include <stdio.h>
int main()
{
int numero;
int vet[32],i;
i=0;
printf("\n\n");
do{ // ciclo ripeti
printf("\n\nInserire il valore (positivo):");
scanf("%d",&numero);
}while(numero<1);
while(numero!=0)
{
vet[i]=numero % 2;
numero = numero / 2;
i++;
}
for(i--;i>=0;i--)
printf("%d",vet[i]);
printf("\n\n");
system("pause");
}
Questo piccolo programmino in c fà la conversione da decimale a binario da un numero fornito in input dall'utente, io però vorrei un programma equivalenti che non divida sempre per 2. es:
10/2
10___
__ 5 |2
0 4 ____
__ 2 |2
1 2 ____
__ 1 |2
0 0 ____
____0
1
il numero in binario è perciò 1010 (partendo dal basso verso l'alto) ma se usassi le potenze di 2 diventerebbe. es:
30= 16+8+4+2
2^4+2^3+2^2+2^1
da questo esempio so che la mia conversione avrà valore:
1 1 1 1 0= 11110
dove il numero di uno è dovuto all'elevamento della potenza
maggiore del numero...
Per far ciò in c non mi è venuta nessuna idea.. voi sapreste aiutarmi?? Come dovrei modificare il codice secondo voi???
grazie del vostro interessamento!
ciao!