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
Partager