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 :

tableau de bool -> conversion en string


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 7
    Points : 7
    Points
    7
    Par défaut tableau de bool -> conversion en string
    Hello,

    Je travaille sur une classe permettant la gestion de très longs entiers (je sais, ça existe déjà, mais là n'est pas la question ... ).

    Pour implémenter mes entiers j'utilise les bitset de la STL (= tableau de bits). Un bool[] serait la même chose pour ceux qui ne connaitrait pas (mais là n'est pas non plus la question ...).

    Pour créer mon bitset à partir d'une chaine representant un entier "91341..." (car c'est la manière naturelle de base de représenter un entier long) c'est assez trivial. Mais c'est l'opération contraire qui me fait galérer, c'est à dire pour réafficher les bits contenus dans le bitset sous forme de chaine de caractères représentant un entier (ex. simple : 1001 [bool[]] -> "9" [string])

    La difficulté réside bien sur dans le fait que l'on ne peut prendre chaque bit, puis les multiplier par la puissance de sa postion, car un type int natif ne le permet pas.

    Exemple :

    402983... (avec encore 195 unités a la suite) -> si je fais 4^200 -> impossible a stocker dans un type int !


    Est-ce que quelqu'un aurait une idée ? Voir même un algo sous forme de pseudo-code ?

    Merci d'avance.

    Th

  2. #2
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Je ne comprend pas vraiment ta question.

    Tu veux passer de "1001" à 9 ou bien de 9 à "1001" ?

  3. #3
    Rédacteur

    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 113
    Points : 276
    Points
    276
    Par défaut
    Si j'ai bien comprit ton problème, la première idée qui me vient à l'esprit, c'est, au lieu d'utiliser un entier, utilise plutôt un tableau/vecteur d'entiers. Du coup, au lieu d'avoir le nombre '45356...0' par exemple tu auras : {4,5,3,5,6, .... ,0}

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Euh, au fait d'employer un tableau d'entier, j'utilise un tableau de bit, ce qui est plus efficace (et surtout plus flexible pour les opérations de base), c'est donc un moyen (certe discutable) de representé des entiers.

    Et la question est donc, comment passer de ce tableau de bit (101001011001...) vers une string représentant un entier ('8',9','5' ... ) ? Parce qu'au bout d'un moment ca peut etre utile de savoir quel entier est stockée ds ce tableau.

    Merci, A+

    Th

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Points : 858
    Points
    858
    Par défaut
    Je ne sais pas s'il existe une méthode plus optimisée que de simplement calculer
    (x/10^n)%10 ... (x/10^0)%10. Demande sur le forum algorithme peut-être, ce n'est pas une question de C++.

    Mais je ne vois pas trop l'intérêt d'afficher un grand nombre en base autre que 2 ou 16, qui elles sont évidentes à implémenter.

Discussions similaires

  1. Conversion byte [] -> String
    Par MiJack dans le forum Langage
    Réponses: 3
    Dernier message: 20/10/2005, 18h16
  2. [C#] Conversion System.String en System.Drawing.Color
    Par Silex dans le forum Windows Forms
    Réponses: 6
    Dernier message: 27/04/2005, 08h21
  3. Réponses: 3
    Dernier message: 26/05/2004, 23h03
  4. conversion de String en Num
    Par Assiobal dans le forum SL & STL
    Réponses: 31
    Dernier message: 15/05/2004, 21h18
  5. Conversions de String à Integer
    Par Rank dans le forum Langage
    Réponses: 5
    Dernier message: 06/08/2003, 16h30

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