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;
}