Conversione decimale binario

di il
3 risposte

Conversione decimale binario

Salve,non capisco perchè questo programma di conversione in binario non funziona bene, con i numeri grandi mi sbaglia la conversione ma in generale il problema è che mi da il numero al contrario , l'algoritmo che ho sviluppato in c++, è il seguente:
#include <iostream>
using namespace std;
int main()
{
int num,resto,i=0;
int vet[20];
int u=i;
cout<<"inserire numero decimale"<<endl;
cin>>num;
while(num !=0)
{
resto=num%2;
num=num/2;
vet=resto;
i++;}
while(i!=0)
{cout<<vet;
i--;
}}

3 Risposte

  • Re: Conversione decimale binario

    E' ovvio che lo dà al contrario. Quando dividi per 2 il bit che ottieni è il bit 0, poi ottieni il bit 1 e così via. Se li visualizzi in questo modo li vedrai al contrario. Probabilmente non hai capito completamente il metodo di conversione che hai adottato.
  • Re: Conversione decimale binario

    Ciao vitogiura97,

    l'ultimo while scrivilo così:

    while(i>0)
    {i--;
    cout<<vet;
    }}

    in pratica quando esci dal primo while i ha un +1 rispetto all'ultimo vet scritto...e quindi poi ti riporta un numero "casuale" prima del binario.
  • Re: Conversione decimale binario

    In effetti non credo che ci siano problemi con quello che hai scritto, mi sembra che il binario venga invertito quando lo stampi quindi tutto apposto, solo che devi fare come dice @orso2001, oppure basta che metti i-- prima dell'ultimo while
Devi accedere o registrarti per scrivere nel forum
3 risposte