Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UTILISATION DE GRANDS ENTIERS EN C++ BUILDER


Information sur la source

Catégorie :Astuces Classé sous : grands, entiers, randriano, cryptographie Niveau : Initié Date de création : 19/04/2007 Date de mise à jour : 30/05/2007 08:45:26 Vu / téléchargé: 3 268 / 266

Note :
Aucune note

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


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.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

30 mai 2007 08:45:27 :
Vision

Commentaires et avis

signaler à un administrateur
Commentaire de acx01b le 19/04/2007 20:35:51


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);
};

signaler à un administrateur
Commentaire de gamemonde le 20/04/2007 00:14:22

bien au lieu de fonction comme additionner utilise les surcharge d'operateur beaucoup plus bau

bonne continuation

signaler à un administrateur
Commentaire de Cyberboy2054 le 20/04/2007 19:32:07

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...

signaler à un administrateur
Commentaire de randriano le 22/04/2007 16:03:34

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

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

manipulaton de trés grands entiers [ par Orkblutt ] Salut,j'aimerai implementer une classe qui me permettrai de manipuler (+,-, /,*,%) des grands nombres (Nb>32bits) mais je ne sais pas du tout comme Urgent...classe de manipulation de grands entiers [ par Orkblutt ] Salut,j'aimerai implementer une classe qui me permettrai de manipuler (+,-, /,*,%) des grands nombres (Nb>32bits) mais je ne sais pas du tout comme Urgent...classe de manipulation de grands entiers bigint [ par marichette ] Salut,j'aimerai implementer une classe qui me permettrai de manipuler (+,-, /,*,%) des grands nombres de taille infini mais je ne sais pas du tout com grands nombres [ par freeskieuse ] Bonjour,je suis debutante en C++, j'ai un projet à faire, mais je ne sais pas du tout comment gèrer...SUJET:Pour la création d'entiers arbitrairement Aruthmétique sur grands entiers ??? [ par Cygnus ] J'ai à effectuer des opérations (+,-,'/,*) sur des grands nombres entiers (positifs et négatifs), tout en utilisant les fonctions membre de la classe Division de deux tableaux d'entiers [ par BenHur ] Bonjour, j'ai deux tableaux d'entiers dont chaque indice contient un nombre de 0 à 9. Je dois faire des opérations mathématiques sur chacun de ces ind class pour manipuler des grands nombres [ par Orkblutt ] Salut,j'aimerai implementer une classe qui me permettrai de manipuler (+,-, /,*,%) des grands nombres (Nb>32bits) mais je ne sais pas du tout comm Tri indirect [ par Darksnakes ] Bonjour ,voila j'ai un probleme sur l'ecriture en c d'un tri indirect.ce tri consites à declarer un tableau d'entiers de même taille que le tableau M erreur de compilation [ par richard97 ] Bonjour  J'ai un projet à faire en C++Voici l'énoncé:SUJET:Pour la création d'entiers arbitrairement grands, l'utilisateur pourra entrer une chaîne (d lit au clavier des entiers positifs et calcul leur moyenne [ par themessenger ] bonjour on vient de commencer la programmation c ...et j'ai petit souci avec mon code .J'arrive pas à calculer la moyenne !!! quand j'execute il m'aff


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,34 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.