BIGINT! UNE STRUCTURE POUR SURCHARGER LES ENTIERS (LONG) SANS LIMITE DE TAILLE.

Signaler
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Messages postés
144
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41931-bigint-une-structure-pour-surcharger-les-entiers-long-sans-limite-de-taille-surcharge-des-operations-et-comparaisons-de-base

Messages postés
144
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

je n'aurais pas vraiment le temps...
qu'entend tu par construction, du BigInt? il s'agit juste d'un nombre écrit dans une chaine de caractère, tout le code consiste surtout à gérer les opérations arithmétiques. Pour les puissances j'ai peché un code sur internet qui optimise le calcul, je ne saurais pas t'expliquer la théorie mathématique qui se cache la derrière mais c'est efficace, plus que de faire les boucles de multiplication en tout cas.
Messages postés
37
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
14 mars 2011

Est ce qu'il t'est possible de faire un tutoriel expliquant la construction d'un BigInt? Car je me perd dans le code...
En tout c'est une source vraiment utile. Pour calculer des combinaisons élevée par exemple.

Merci a toi!
Messages postés
144
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

J'ai réussi à me débarasser d'un problème qui m'embetait beaucoup: le fait d'avoir autant de déclarations des opérateurs qu'on a de TYPE : par exemple A(BigInt)+B(BigInt), puis A(BigInt)+B(Long) puis A(Long)+B(BigInt) ... etc pour chaque opérateur (+-*/ et aussi = <> < > <= >= ça devenait fastidieux)
L'astuce pour s'en débarasser consiste à implémenter l'interface IEquatable(Of Long) et les opérateurs CType() qui permettent de traduire automatiquement tout entier (Short Int et Long) en un BigInt!

(ma structure sur les réels avance peu mais je ne désespère pas de la sortir quand même d'ici quelques semaines ^^ merci pour les encouragements)
Messages postés
1221
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018

Pas mal du tout !
Si tu veux nettoyer le zip, enlève les répertoires Obj et Bin, ça sera déjà pas mal.
Quand tu seras sur les réels, c'est surtout la précision à la demande qui sera utile (nombre de décimales justes souhaité).
Afficher les 7 commentaires