Convertion Binaire => Decimal => Hexa...

WebKiller17 Messages postés 4 Date d'inscription lundi 1 décembre 2003 Statut Membre Dernière intervention 2 décembre 2003 - 1 déc. 2003 à 15:26
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 2 déc. 2003 à 18:11
Hello a tous,

J suis un amateur en prog... et j aurai besoin de votre coup de main... est ce que vous pourriez me dire ce qui joue pas dans ce code et ce qu il faudrai encore mettre pour qu il soit fini?! Je vous serai très reconnaissant !!!

voilà la source:

////////////////////////

// Includes
#include
#include<string.h>

// namespace -> std
using namespace std;

// fonction principale
int main (void)
{
unsigned int final_base = 0;
char *init_base = new char[10]; unsigned int flag_error 1; // flag error 1
unsigned int init_base_len = 0;

// initialisation de init_base
strcpy (init_base,"\0");

// choix de la base initiale
while((final_base <= 0) || (final_base > 3))
{
cout << "\nBase Converter\n";
cout << "--------------\n";
cout << "1: -> Binaire\n";
cout << "2: -> Hexadecimal\n";
cout << "3: -> Decimal\n\n";
cout << "Veuillez choisir la base finale [1,2,3]: ";
cin >> final_base;
};

while(flag_error != 0)
{
cout << "\nConventions pour la valeur a convertir\n";
cout << "--------------------------------------\n";
if(final_base!=3)
cout << " d: decimal [ex: d_102]\n";
if(final_base!=1)
cout << " b: binaire [ex: b_1010]\n";
if(final_base!=2)
cout << " h: hexadecimal [ex: h_F4ED]\n";
if(init_base!="")
cout << " s: utiliser la derniere valeur entree\n";
cout << "\nEntrer votre base de depart: ";
cin >> init_base;

// control de la longeur de init_base
if(init_base_len=strlen(init_base)<3)
{
flag_error=1; // entree pas assez longue
cout << "\n\n\n!!! L'entree -> " << init_base << " <- n'est pas assez longue !!!\n\n\n";
}
else
flag_error=0;

// gestion des chars (maj/min) -> min
init_base[0] = tolower(init_base[0]);

// control de la base entree
if(flag_error == 0)
{
if((init_base[0] != 'd') &&
(init_base[0] != 'b') &&
(init_base[0] != 'h') &&
(init_base[0] != 's'))
{
flag_error=1;
cout << "\n\n\n!!! La base entree n'existe pas !!!\n\n\n";
}
else
flag_error=0;
}

// control si l'utilisateur ne veut pas convertir dans la meme base
if(flag_error == 0)
{
if(((init_base[0] == 'b') && (final_base == 1)) ||
((init_base[0] == 'h') && (final_base == 2)) ||
((init_base[0] == 'd') && (final_base == 3)))
{
flag_error=1;
cout << "\n\n\n!!! Base initiale = Base finale !!!\n\n\n";
}
else
flag_error=0;
}

// effectuer la convertion
if(flag_error == 0)
{
switch(init_base[0])
{
case 'd':
if(final_base == 1) // convertion decimal -> binaire
{
}
else if(final_base == 2) // convertion decimal -> hexadecimal
{
}
break;
case 'b':
if(final_base == 3) // convertion binaire -> decimal
{
}
else if(final_base == 2) // convertion binaire -> hexadecimal
{
}
break;
case 'h':
if(final_base == 3) // convertion hexadecimal -> decimal
{
}
else if(final_base == 1) // convertion hexadecimal -> binaire
{
}
break;
default: break; //on ne devrait JAMAIS arriver ici
}
}
};

delete init_base;

return 0;
}

////////////////////////////

MERCI BCP !!!!! :)

6 réponses

WebKiller17 Messages postés 4 Date d'inscription lundi 1 décembre 2003 Statut Membre Dernière intervention 2 décembre 2003
1 déc. 2003 à 23:03
Personne ne pourrait m aider?!

Please :(
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
2 déc. 2003 à 00:31
Salut,
Ben ecoute, il manque le principal: les fonctions qui effectuent les conversions ?
0
WebKiller17 Messages postés 4 Date d'inscription lundi 1 décembre 2003 Statut Membre Dernière intervention 2 décembre 2003
2 déc. 2003 à 09:52
Oui c est clair, mais est ce que quelqu un aurait un lien, ou une source avec les fonctions pour les convertions? car j en trouve quelques une mais je sais pas les quels sont bien et qui fonctionne etc...

Si quelqu un pourrai m aider la dessus ça serait vraiment sympa !! MERCI BCP !!!

:) :D
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
2 déc. 2003 à 12:37
Salut,
Sur ce site deja pas mal de sources (dont une de moi) traitent des conversions de ce style.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
WebKiller17 Messages postés 4 Date d'inscription lundi 1 décembre 2003 Statut Membre Dernière intervention 2 décembre 2003
2 déc. 2003 à 15:13
Oui j ai vu ta source mais c est en Win32...

Moi je fais en mode console avec borland builder...

est ce que j ai simplement qu a prendre les fonctions et les ajouter sur mon bout de code? MERCI Mister !!!! ;)

bye
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
2 déc. 2003 à 18:11
Salut,
Evite de copier betement des fonctions, essaye plutot de les comprendre et ensuite de coder tes propres fonctions.
Dans ma source tu as BaseToDec(...), qui converti de n'importe quelle base vers du décimal. Le reste (decimal vers autres bases) est converti avec itoa(...).
Cherche sur le site, deja bcp de sources de conversion, ca te fait deja pas mal de "modeles" a etudier.
0
Rejoignez-nous