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: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"); }
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!![]()

Rispondi quotando