Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di mica81
    Registrato dal
    Nov 2003
    Messaggi
    87

    [c++] convertitore di basi

    salve a tutti. ho provato a compilare un programma in c++ (ambiente dev/c++) che dato un numero binario o decimale lo converte nella base decimale o binaria. ecco il sorgente:

    #include <iostream>
    int main()
    {
    int scelta;
    unsigned int n ;
    unsigned int m ;
    unsigned int dim = 8 * sizeof(unsigned int) - 1 ;
    cout<<" scegliere il tipo di operazione da effettuare:"<<endl;
    cout<<" 1 convertire il numero dato in notazione binaria: \n";
    cout<<" 2 convertire il numero binario dato in notazione decimale: \n";
    cin>>scelta;
    if (scelta ==1){
    cout<<"Inserire il numero decimale " ;
    cin>>n ;
    while ( dim > 0 && (n >> dim) == 0)
    dim-- ;
    cout<<"La rappresentazione del numero "<<n<<" in base binaria e'\n" ;
    for (int i = dim ; i >= 0 ; i--)
    cout<<((n>>i)&1) ;
    }
    else {
    int i=0,bin=0;
    char c[20];
    cout<<"Inserire il numero binario " ;
    scanf("%s",c);
    while (c[i]!=0)
    {
    m=c[i]-'0';
    bin+=m;
    bin*=2;
    i++;
    }
    bin/=2;
    cout<<"Il corrispondente decimale e':"<< bin <<'\n';

    }

    cout<<endl;
    system("pause");
    return 0;
    }

    come vedete mi sono appoggiato al c nella parte del programma che converte il valore binario in decimale.
    perchè? perchè non mi veniva in mente nulla!
    che ci posso mettere al posto di scanf("%s",c)?
    grazie.

  2. #2
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Credo dovresti fare una cosa del genere
    codice:
    int c[SIZE];//bisogna conoscere a priori le cifre del numero
    int letto;
    
    //....
    //....
    cin >> letto;
    int temp = letto;
    for(int i=SIZE; i>=0; i--){
        c[i] = temp%10;
        temp /= 10;
    }   
    //....
    //....
    In questo modo dovresti avere un array con le singole cifre in ogni posizione.
    Non sono sicuro di aver scritto un codice giusto, ma la logica credo lo sia: prendere ogni volta solo l'ultima cifra .
    Ciao
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  3. #3
    Utente di HTML.it L'avatar di mica81
    Registrato dal
    Nov 2003
    Messaggi
    87

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.