Convertion de gros nombre hexadecimal en decimal [Résolu]

Signaler
Messages postés
5
Date d'inscription
vendredi 10 février 2006
Statut
Membre
Dernière intervention
13 septembre 2009
-
Messages postés
5
Date d'inscription
vendredi 10 février 2006
Statut
Membre
Dernière intervention
13 septembre 2009
-
Voila, je veut savoir comment convertire des grands nombre hexadecimal en decimal (avec Delphi bien sur), voici un exemple de nombre à convertire: 

X := '0D7E0E3A8176E7C7A2336019AA9B447236E9A8CD880B103100' ;

J'aimerai aussi pouvoir faire des opérations sur ces nombres, exemple (X + 1), ou encore ( X * 2)

Quelqu'un peut m'expliquer comment performer des opérations mathématiques sur des grand nombres hexadécimals comme celui de mon exemple?

Merci!

4 réponses

Messages postés
63
Date d'inscription
dimanche 16 octobre 2005
Statut
Membre
Dernière intervention
13 novembre 2009
1
A mon avis avec un nombre de cette taille la précision mathématique n'est pas assez précise, il faut implenter toi même le système de calcul, le plus simple n'étant pas le plus élégant :
tu considères ton nombre par une série de rangs (1 chiffre decimal ou hexa) classé du moins signifiant (dernier à droite) au plus signifiant (premier à gauche).

Ensuite il faut se rappeler des cours du CP et du CE1 ...

Pour additionner 2 nombres S=x+y
pour chaque rang (i) :    S(i)=x(i)+y(i)+retenue(i-1)   et prépare la retenue(i) pour le rang

pour la multiplication : rappelez-vous :

 142
x 36
----
 852
426
----
5112

idem en hexa

 142
X 36
----
 78C
3C6
----
43EC

Attention pour les très grosses multiplications la retenue peut être sur plusieurs rangs ... mais on peut simplifier :


car même en hexa 142X36=142X30 + 142X6 (et là : pas de retenue supérieure à un rang).

Jean-Michel
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
12
ShowMessage(IntToStr($D5));

çà devrait te mettre sur la piste..

cantador
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
12
Voila, je veut savoir comment convertire des grands nombre

Faudrait savoir si effectivement ce sont biens des grands nombres ou la lecture d'une chaîne représentant une suite d'octets en hexadécimal ?

cantador
Messages postés
5
Date d'inscription
vendredi 10 février 2006
Statut
Membre
Dernière intervention
13 septembre 2009

C'étai effectivement des grand nombres.

J'ai maintenant une autre question:

Je dois faire ce calcul:
Z = X^(-1) mod Y

Mes valeurs "X" et "Y" sont:
X:= '9DF125F1C789F2384DE2F34EBC1B1F5712BDE7E3CB22593F3F9A0C88D8C1D247';
Y:= 'F2860A427302333BCD040912A34F2B62F8DC0A42F3DE8BB6E684BC1789AB6111';

Quelqu'un aurait-t'il une idée de la façon dont je dois m'y prendre?