[C] conversion decimal -> hexa

Résolu/Fermé
cataclypse - 3 août 2006 à 12:09
 cataclypse - 4 août 2006 à 10:15
Bonjour,

Je cherche à convertir des entiers en hexadécimal. Mes entiers sont longs (disont 1024 bits), evidement, convertir des nombres de 32 bits, c'est facile...

Moi, je voudrai l'algo qui me permette de convertir le nombre decimal suivant :

585856430842882801764463739687301144241074192444640152644448939272240126306
91789482633773954538722685686046254635246206232275735158054157931106062291505299
90897088100502386012090695438164957497711733366173126552467966227874466635888109
4295063354873714287977114784059254396955904477668982192815149575434860493

en hexadecimal :

536dc0ec fbdc7 40b 242c7557 60f77f86 cac9feb3 51907216 87bd702f 159c5fe0 d14ef4f5 64011 aa2 70cd326b 5dcc69fb 2bd76673 357a9fa1 399581ab c231c7a9 c3fd7dae 3f04b4c4 b50f2f52 7634287d 101ad4ea 986b577d 16f6a082 000009c8 7b487e27 203796fe dbc2561d e07efe9d cd610b28 a3b25c3b b0af74c6 3b5af7cd

Quelqu'un aurait une piste ?

Merci
A voir également:

3 réponses

Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008 64
3 août 2006 à 13:24
Salut,

je veux pas dire de connerie, mais dans math.h il n'y a pas une fonction qui fait déja ça ? Je me rappelle plus exactement, mais de mémoire ça existe déja, en pouvant lui spécifier le type de données en entrée et le type de données en sortie (les bases donc).

Désolé c'est plutôt flou comme aide, et j'ai pas accès ici aux bibliothèques.
0
mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 7 748
3 août 2006 à 13:31
Si tu veux faire l'algo exact de convertion il faut faire des divisions succesives par 2 jusqu'à obtenir un quotient plus petit que 2. Les restes obtenus (0 uo 1) successivement, une fois remis dans l'autre sens donne la conversion en binaire.

Ex : avec 15
13= 2*6 + 1
6 = 2*3 + 0
3 = 2*1 + 1
1 = 2*0 + 1

Les restes obtenus successivement sont 1,0,1,1. Ensuite on retourne ce qui donne 1101, conversion binaire du nombre. Enfin il ne reste plus qu'à convertir en hexa. Et passer du bianire à l'hexa c'est facile, il suffit de considérer des paquets de 4 bits.

Exemple : 1010011011
10 1001 1011
10 --> 2
1001 --> 9
1011 --> B
Ce qui donne 29B

Bonne chance
0
Problème résolu. J'ai finalement décidé d'utiliser gmp pour faire la conversion et ça fonctionne sans problème.

merci pour vos réponses.
0