Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    7

    [C++] Problema programma da Decimale a Binario

    Salve, volevo sapere che errore c' è nel mio programma. L' algoritmo penso che vada bene ma probabilmente l' errore principale sta nel if per far scrivere 0 e 1. Cosa devo correggere? Il vero problema è che devo far scrivere i numeri in binario direttamente nel verso giusto nel vettore.
    codice:
    #include <windows.h>
    #include <cstdlib>
    #include <iostream>
    #include <math.h>
    #define binario_MAX 8
    
    
    using namespace std;
    
    
    int main ()
    {
        int binario [binario_MAX], i;
        int dec, x;
        
        cout << "Inserisci il numero: ";
        cin >> dec;
        x = dec;
        
        if (dec > pow(2, binario_MAX))
        {
            cout << "Il numero inserito deve essere minore di " << pow (2, binario_MAX) << "!";
        }
        else
        {
            for (i = 0; i < binario_MAX; i++)
            {
                if (dec / 2 == 0)
                {
                    binario [i] = 0;
                }
                else
                {
                    binario [i] = 1;
                }
                dec = dec / 2;
            }
             
            cout << "Il numero " << x << " in binario e': ";
            for (i = 0; i < binario_MAX; i++)
            {
                cout << binario [i];
            }
        }
        system ("pause>nul");
        return 0;
    }
    Ultima modifica di MItaly; 16-11-2016 a 00:54 Motivo: Tag CODE, titolo

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    codice:
    if (dec / 2 == 0)
    Forse intendevi utilizzare modulo(%) e non diviso(/).
    In ogni caso puoi comunque semplificare a binario[i]=dec%2;

    Inoltre è più efficiente sfruttare il fatto che i numeri sono rappresentati internamente in binario, e quindi basta una sequenza di dec&1 dec>>1 che corrispondono a dec%2 dec/2
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    7
    okay grazie mille con il modulo torna però mi mette il numero in binario al contrario e l' esercizio richiede che il numero sia inserito nel vettore corretto, quindi senza farlo visualizzare al contrario. Quella sequenza lì ancora non la conosco quindi non so come e dove dovrei usarla

Tag per questa discussione

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.