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

Langage C++ Discussion :

unsigned long long int -> char*


Sujet :

Langage C++

  1. #1
    Membre éclairé
    Homme Profil pro
    Doctorant en Astrophysique
    Inscrit en
    Mars 2009
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Astrophysique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2009
    Messages : 312
    Par défaut unsigned long long int -> char*
    Bonjour.

    Je suis en train d'écrire un programme avec GMP (GNU Multiple Precision Arithmetic Library) mais hélas celui-ci ne gère pas la conversion directe des unsigned long long int.

    La fonction que je vais donc être forcé d'utilisé est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char * mpz_get_str (char *str, int base, mpz t op)
    Il faut donc que je convertisse mon unsigned long long int en "char *str".

    Comme je cherche à écrire un programme assez optimisé, j'aurai besoin d'avoir la conversion la plus efficace possible.
    Comment faire cela ?

    (précision : à la fin de la conversion, je veux un *char et non un const *char).

    Merci beaucoup

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 5
    Par défaut
    Si tu ne connait pas la base à l'avance, je vois pas trop comment tu peux optimiser, par contre si base est une puissance de 2 tu peux jouer avec des bitshifts et pour avoir le ième chiffre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char digit = op & (base - 1); // convertir selon base
    op >>= log2(base); // log2(base) calculé au début

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 57
    Par défaut
    bonsoir
    Pour convertir les long la std propose ltoa,
    http://en.wikipedia.org/wiki/Ltoa.

    Bonne soiree!

Discussions similaires

  1. unsigned long long int et printf
    Par darkwall_37 dans le forum Débuter
    Réponses: 19
    Dernier message: 01/02/2013, 14h27
  2. unsigned long long int
    Par salseropom dans le forum C
    Réponses: 10
    Dernier message: 21/12/2006, 22h43
  3. décallage sur long long int
    Par trax44 dans le forum C
    Réponses: 9
    Dernier message: 26/02/2006, 11h41
  4. Réponses: 6
    Dernier message: 06/12/2005, 16h54
  5. [Transtypage] Long en int
    Par Bugmaster dans le forum Langage
    Réponses: 2
    Dernier message: 20/09/2004, 09h05

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