Utilisation de grands entiers en c++ builder

Soyez le premier à donner votre avis sur cette source.

Vue 6 824 fois - Téléchargée 538 fois

Description

Les entiers prédéfinis du langage C++ ont une valeur limitée: d'où la notion de GRANDS ENTIERS. Le type "int" en C++ Builder est 32 bits donc ne représente au maximum que 4294967296 et "int64" que 18446744073709551616.
Les grands entiers peuvent contenir des chiffres jusqu'à la limite de la mémoire de votre ordinateur.
Le nombre est donc stocké dans une chaîne de caractère: char *.
Imaginez qu'on alloue un espace de 1000 octets pour ce char * alors l'entier peut contenir donc 1000 chiffres.
Incroyable non!!! Où est int et int64 dans tout ça???

Conclusion :


Les grands entiers sont très utiles en CRYPTOGRAPHIE comme RSA, etc. Si on utilise des types int, le cryptogramme est facilement cassable mais avec des grands entiers, le cassage se fera en une siècle et plus même avec un processus de 10GHz.

Ce code englobe alors une classe GrandEntier qui représente ce nouveau type.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
54
Date d'inscription
vendredi 13 avril 2007
Statut
Membre
Dernière intervention
26 juillet 2011

Il n'y a pas de trucs bizarres dans mon code.
Pour rendre le code encore plus beau:
je travaille actuellement sur l'utilisatin des opérateurs +,-,* au lieu de fonctions comme additionner(a1,a2,a3).

Je précise que je n'ai pas visionné les codes similaires postés sur ce site lorsque
Messages postés
173
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
22 août 2008

J'ai un bout de code dans ce genre qui traine sur mon disque dur depuis un moment, que je n'ai jamais eu le courage de terminer.
En gros on est plus ou moins au meme point, a la différence que je gere 2-3 trucs de plus que toi:le signe des grands l'operation egalite, inferieur a, la fonction puissance, (que des trucs pas vraiment dur a rajouter en fait), mais surtout le signe des nombres, ce qui demande de rereflechir un peut les algorithmes (surtout pour l'addition en fait)
Faudrait aussi rajouter la division et l'operateur modulo, et eventuellement des nombres de taille un peu plus infinie que 1000 (taille définie au run time via allocations dynamiques) comme tu semble le faire ici, stocker dans une classe et utiliser la surcharge d'operateurs, mais cela releve de l'accessoire, mais meme si pas grand monde utilise des nombre de plus de 1000 chiffres, pour de la cryptographie je suis sur qu'on peut aller jusque la...
Messages postés
338
Date d'inscription
samedi 9 août 2003
Statut
Membre
Dernière intervention
9 juillet 2011
2
bien au lieu de fonction comme additionner utilise les surcharge d'operateur beaucoup plus bau

bonne continuation
Messages postés
280
Date d'inscription
dimanche 7 septembre 2003
Statut
Membre
Dernière intervention
8 juillet 2014
4
salut il y a des trucs super bizzares dans ton code!

notament ton .h:

class GrandEntier{
int nb_chiffre(char *s);
void inverser(char s[200]);
void zero(char s[200]);
void echanger(char *str1,char *str2);
int plus_grand(char *n1,char *n2);
public:
char * nombre;
GrandEntier();
void addition(char *n1,char *n2);
void sous(char *n1,char *n2);
void multi(char *n1,char *n2);
};

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.