Rechercher : dans
Par :

[C] conversion decimal -> hexa

Dernière réponse le 22 mar 2008 à 19:10:07 cataclypse, le 3 aoû 2006 à 12:09:12 
 Signaler ce message aux modérateurs

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 :

585856430842882801764463739687301144241074192444640152644448­939272240126306
917894826337739545387226856860462546352462062322757351580541­57931106062291505299
908970881005023860120906954381649574977117333661731265524679­66227874466635888109
429506335487371428797711478405925439695590447766898219281514­9575434860493

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

Meilleures réponses pour « [C] conversion decimal > hexa » dans :
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Système hexadécimal VoirSystème hexadécimal Les nombres binaires étant de plus en plus longs, il a fallu introduire une nouvelle base : la base hexadécimale. La base hexadécimale consiste à compter sur une base 16, c'est pourquoi au-delà des 10 premiers chiffres on a...
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...

1

Darshu, le 3 aoû 2006 à 13:24:40

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.

T'as pensé à regarder sur Google avant de poser ta question ­? 

Répondre à Darshu

2

mamiemando, le 3 aoû 2006 à 13:31:14

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

Répondre à mamiemando

3

 cataclypse, le 4 aoû 2006 à 10:15:26

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.

Répondre à cataclypse
Collection CommentÇaMarche.net