IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

conversion base string hexa-> int


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Points : 13
    Points
    13
    Par défaut conversion base string hexa-> int
    Bonjour a tous !!

    j'ai un petit problème .... J'ai fait un programme qui permet de faire de la conversion de base entre base 8 base 10 base 16.
    le programme nous demande de saisir : la base d'entrée, la base de sortie et un nombre soit en octal soit en décimal soit en hexa et ça le met dans un string.
    Après contrôle que le nombre soit bien de la base d'entrée, j'aimerais l'afficher dans la base de sortie.

    Mon problème ce situe au niveau de comment je fais pour convertir par exemple ma valeur en hexa ou octal qui est dans mon string en un int que je peux afficher dans les autre base (soit %X soit %o) ?

    Merci a vous d'avance !

  2. #2
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Soit tu codes ta propre fonction (c'est le mieux à faire je pense), soit tu utilises la fonction strtol. http://man.developpez.com/man3/strtol.3.php
    Plus tu pédales moins fort, moins t'avances plus vite.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Pouet_forever Voir le message
    Soit tu codes ta propre fonction (c'est le mieux à faire je pense), soit tu utilises la fonction strtol. http://man.developpez.com/man3/strtol.3.php
    salut !! eeeeeh j'ai un peu de mal à comprendre cette fonction ...

    mais dans l'optique ou je voudrais faire ma propre fonction ... je devrai m'y prendre comment plus ou moins ?

    merci a toi de ton aide

  4. #4
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Pour créer ta propre fonction, il faut que tu lises ta chaîne caractère par caractère et que tu fasses le nécessaire.

    - Tu regardes le signe,
    - Tu regardes le préfixe (0, 0x, OX et pourquoi pas 0b),
    - Tu convertis ta chaîne en nombre en fonction de la base.
    Plus tu pédales moins fort, moins t'avances plus vite.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Pouet_forever Voir le message
    Pour créer ta propre fonction, il faut que tu lises ta chaîne caractère par caractère et que tu fasses le nécessaire.

    - Tu regardes le signe,
    - Tu regardes le préfixe (0, 0x, OX et pourquoi pas 0b),
    - Tu convertis ta chaîne en nombre en fonction de la base.

    oui oui c'est bien ce que je pensais faire ... mais le seul des trois points que tu cite et que je ne vois pas comment faire c'est le troisième ...
    par exemple qui j'ai une valeur octale dans ce string ... alors je fais comment?

    Peut-être que je pourrais faire caractème après caractère et que je lui dise que pour chaque caractère je fais x8^0 pour le dernier x8^1 pour l'avant dernier ...

    un truc comme ça ?

  6. #6
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Tu regardes d'abord ta base, une fois que tu as ta base c'est très simple :

    - Tu initialises ta variable de résultat à 0,
    - Tu récupères le chiffre de la chaîne (faire - '0' pour récupérer le chiffre),
    - Tu l'additionne à ta variable de résultat,
    - S'il te reste des chiffres (donc que tu n'es pas arrivé à la fin de ta chaîne) tu multiplies ton résultat par la base,
    - Tu renvoies ton résultat.

    Voilà, je pense que ça devrait te guider.
    Plus tu pédales moins fort, moins t'avances plus vite.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Pouet_forever Voir le message
    Tu regardes d'abord ta base, une fois que tu as ta base c'est très simple :

    - Tu initialises ta variable de résultat à 0,
    - Tu récupères le chiffre de la chaîne (faire - '0' pour récupérer le chiffre),
    - Tu l'additionne à ta variable de résultat,
    - S'il te reste des chiffres (donc que tu n'es pas arrivé à la fin de ta chaîne) tu multiplies ton résultat par la base,
    - Tu renvoies ton résultat.

    Voilà, je pense que ça devrait te guider.
    Wow !! ouais joli !! j'ai pas la possibilité de tester ce soir ... mais je te tiens au courant de ce que je suis arrivé à faire ....

    merci beaucoup

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    oui oui alors finalement c'est bien ça ... j'ai testé avant mais pas eu trop le temps de répondre désolé ...

    merci bcp pour la marche à suivre ...

    a bientot petut-être

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion chaine en hexa, return int.
    Par Oseam dans le forum C
    Réponses: 13
    Dernier message: 19/02/2013, 12h58
  2. Conversion de mois string en mois int +1
    Par choubak dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 05/07/2007, 09h10
  3. conversion chaine hexa en int
    Par Biosox dans le forum SL & STL
    Réponses: 2
    Dernier message: 31/05/2007, 11h17
  4. conversion string hexa en float
    Par cimson dans le forum Langage
    Réponses: 6
    Dernier message: 25/04/2007, 23h57
  5. [C++] Conversion de String en int
    Par poporiding dans le forum Framework .NET
    Réponses: 2
    Dernier message: 02/01/2006, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo