Voilà,
Cela fais plusieurs heures que je cherche un programme qui puisse convertir le Décimale (Base 10) en Binaire (Base 2] en C++!
using namespace std;
int decimale, x, resultat = 0, tailletableau,i,j;
int main()
{
cout << "Programme de conversion de decimale en binaire : " << endl;
cout << "Entrez le nombre a traduire en decimale : ";
cin >> decimale;
while (resultat < decimale)
{
resultat = pow(2,x);
x++;
}
x--;
cout << "\nLa taille du tableau est de : " << x << endl;
vector<int> tableau(x);
do
{
resultat = decimale%2;
decimale = decimale/2;
if (decimale = 1)
{
tableau[0] = 1;
decimale = 0;
}
tableau[x] = resultat;
x--;
}while (decimale != 0);
for (i=0; j<2; j++)
{
cout << tableau[i];
}
return 0;
}
Quand je compile ça ne marche pas, Pouvez vous m'aider ?
"Quand je compile ça ne marche pas"
Colle les erreurs, banane
Enfin, façon de parler, le programme ne marche pas !
ça me met bien la taille du tableau
Mais quand par exemple je rentre 150 le réponse est "11"....
Utilise un masque que tu décales avec un & sur ton nombre pour savoir si les différents bits sont à un ou pas.
Salut, bon alors déjà quelques règles à respecter (je vais faire mon chiant :
1 - PAS de variable globale,
2 - Préfère les déclarations ainsi que les initialisations en haut du code, et non n'importe où,
3 - Tu utilises ta variable "x" alors qu'elle n'est pas initialisé ? (à moins que ton compilateur autorise le "chaînage d'initialisation")
4 - if(decimale == 1) (ou if(decimale)) au lieu de if(decimale = 1)
De mon côté j'ai refait le code, je pense pas qu'il soit parfait mais il a le mérite de fonctionner et de tenir en quelques lignes :
http://pastebin.com/yhCprjuS
Petit re post vite fait, j'ai amelioré mon précédent code :
std::string decToBin(unsigned int decimal)
{
std::string bin = "";
while(decimal)
{
int lsb = decimal % 2;
decimal = decimal >> 1;
(lsb) ? bin.insert(bin.begin(), '1') : bin.insert(bin.begin(), '0');
}
return bin;
}