Résultats de 1 à 6 sur 6

Sujet : Conversion de bases

  1. #1
    Visiteur MP
    Visiteur MP

    Conversion de bases

    bonjours je dois ecrire un progrmme en c qui convertit un nombre ecrit dans une base B1(1<b1<11) vers une base B2 (1<b2<11)
    voia je ne sais pas du tout coment m\'y prendre merci de m\'aider

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    627
    Des bases connus genre hexa en binaire ou decimal ... ou des base que tu peux inventer?
    genre:
    10 \"0123456789\" \"abcdefghij\" te retourne \"ba\"
    ... Until then, we're better off dead
    A smile on the lips and a hole in the head ...

  3. #3
    Visiteur MP
    Visiteur MP
    la conversion que je dois realiser inclu la conversion dans les bases connues binaire hexa decimal mais aussi dans les autres bases inventeés comprises entre 1 et 11

  4. #4
    Membre MP
    Inscrit
    août 2013
    Messages
    8
    Voici un petit algo qui devrait t\'aider, il faut utiliser la fonction modulo.

    J\'explique la fonction modulo pour ceux qui ne la connaisse pas. La fonction modulo permet de diviser deux nombres en ne renvoyant que le reste.

    L\'opérateur modulo, ou reste, divise l\'argument B par l\'argument C (en arrondissant les nombres à virgules flottantes à des nombres entiers) et ne retourne que le reste dans l\'argument A.

    exemple :
    A = B % C

    le % représente le modulo
    14 % 3 = 2

    En effet 8 est égale à (4*3)+ 2 où 2 est le reste de la division.

    Pour transformer un nombre N1 base 10 en base N, tu dois diviser ce nombre par N ainsi que le résultat de cette opération, jusqu\'à ce que le résultat soit = à 0. Le reste de chaque opération te sert à composer ton nombre en base N.

    Je te fais un exemple, ce sera plus simple.
    Prenons l\'exemple du chiffre 25 à mettre en base 2, 3, 5 et 7.

    25 base10 à mettre en base2 :

    25/2 = 12 reste 1
    12/2 = 6 reste 0
    6/2 = 3 reste 0
    3/2 = 1 reste 0
    1/2 = 0 reste 1

    25 base10 se note 10001 en base2.

    25 base10 à mettre en base3 :

    25/3 = 8 reste 1
    8/3 = 2 reste 2
    2/3 = 0 reste 2

    25 base10 se note 221 en base3.

    25 base10 à mettre en base5 :

    25/5 = 5 reste 0
    5/5 = 1 reste 0
    1/5 = 0 reste 1

    25 base10 se note 100 en base5.

    25 base10 à mettre en base7 :

    25/7 = 3 reste 4
    3/7 = 0 reste 3

    25 base10 se note 34 en base7.

    Ok, je n\'ai fais qu\'un exemple de base 10 vers base N. Tu vas me dire comment je fais pour aller d\'une base N vers une base10.
    Il te faut d\'abord convertir ton nombre baseN vers la base 10 puis effectuer l\'opération que je t\'ai expliqué plus haut.

    exemple :

    34 base7 en base4

    nombre en base 10 : (P = puissance)
    Nombre Base 10 = 4 * 7 P0 + 3 * 7 P1 = 25

    25 base 10 =&gt; base 4

    25 / 4 = 6 reste 1
    6 / 4 = 1 reste 2
    1 / 4 = 0 reste 1

    25 base10 donne 121 en base4

    J\'espère que cela pourra t\'aider mais si je ne suis pas très clair dans mes explications.

    A+

  5. #5
    Visiteur MP
    Visiteur MP
    merci de ton aide pour ton algo mais je l\'avais trouver le probleme que j\'ai comme je suis débutant en c je ne sais pas comment sauvegarder le reste de ma division et le quotient pour pouvoir le rediviser ensuite par la base

  6. #6
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517
    Salut kris, je vois un peu tard ce sujet, je vois qu\'il n\'est pas bouclé.

    Donc as-tu fini ton projet et trouvé comment faire ou cherches-tu encore de l\'aide ?
    Si oui, je suis la avec quelques mois de retard.

    Pour garder le résultat de ta division euclidienne, il faut créer des variables soit statiquement soit en tableau pour y mettre les résultats.

    Je peux détailler si tu as besoin.
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé