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!