Convertion de gros nombre hexadecimal en decimal

Résolu
KingRamses Messages postés 5 Date d'inscription vendredi 10 février 2006 Statut Membre Dernière intervention 13 septembre 2009 - 29 mars 2008 à 20:55
KingRamses Messages postés 5 Date d'inscription vendredi 10 février 2006 Statut Membre Dernière intervention 13 septembre 2009 - 22 avril 2008 à 18:56
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

jnmchl Messages postés 63 Date d'inscription dimanche 16 octobre 2005 Statut Membre Dernière intervention 13 novembre 2009 1
31 mars 2008 à 23:20
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
3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 14
30 mars 2008 à 14:12
ShowMessage(IntToStr($D5));

çà devrait te mettre sur la piste..

cantador
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 14
1 avril 2008 à 10:18
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
0
KingRamses Messages postés 5 Date d'inscription vendredi 10 février 2006 Statut Membre Dernière intervention 13 septembre 2009
22 avril 2008 à 18:56
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?
0