Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    153

    conversione in bianario con potenze [c]

    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!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    156
    non ho capito cosa non riesci a fare

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    153
    dovrei fare lo stesso programma ma che non divida per due il numero per poi prendere il resto ma che usi le potenze di due come ho scritto sopra... non saprei neanche come implementarlo in quel modo che mi è stato rischiesto!

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    156
    ok. il problema è che non riesci a "pensare" l'algoritmo o non lo riesci a codificare?

  5. #5
    Forse potresti partire da una potenza di 2(es. 2^5=32,confrontarla col numero da convertire:se è maggiore del numero,per esempio 28,allora 2^5=32 ha un coefficiente 0(0+2^5)e scali alla potenza inferiore 2^4=16;16 è minore di 28 e quindi 2 alla 4 ha coefficiente 1(1+2^4=16),poi passi alla potenza inferiore 2^3. 1*2^4+1*2^3=24.24<28 e quindi 2^3 ha coefficiente 1,e così via).

    Ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    153
    si ok questo l'ho capito finalmente... ma non saprei come codificarlo in C!
    grazie del vostro interessamento!

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    156
    prova a buttar giù una bozza... magari anche in italiano con i passi da fare

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.