Ce document a été produit par HEVEA.
Votre browser peut avoir a être configuré pour afficher correctement
certains symboles.
Reportez-vous à la documentation d'HEVEA.
typedef struct bigint { unsigned int size; /* taille */ unsigned int *value; /* valeur */ } bigint;Un problème inhérent à ce type de librairie est le passage de la représentation en binaire des nombres à leur représentation en décimal. En effet, tous les chiffres binaires interviennent dans la valeur d'un des chiffres décimaux. Il est donc préférable de travailler en une base puissance de 10, et on choisira la plus grande puissance de 10 pouvant être contenue dans un élément du tableau (soit 109 pour un unsigned int). Le stockage se fera du poids faible (indice 0) au poids fort (dernier élément du tableau).
/* Operators */ extern int cmp(bigint a, bigint b); /* Comparaison */ extern bigint add(bigint a, bigint b); /* Addition */ extern bigint sub(bigint a, bigint b); /* Soustraction (a >= b)*/ extern bigint product(bigint a, bigint b); /* Produit */ / * Division */ extern void intdiv(bigint a, bigint b, bigint *quotient, bigint *modulo); extern bigint pow2n(unsigned int n); /* 2 puissance n */ /* Input / Output */ extern void printbigint(bigint n); /* Affichage sortie standard */ extern char *biginttostr(bigint n); /* Conversion bigint vers chaine */ extern bigint *strtobigint(char *s); /* Conversion chaine vers bigint */ /* Conversion bigint vers chaine */ /* Decimales entre first et last */ extern char *biginttosubstr(bigint n, int first, int last);
cmp
compare a et b, et retourne la position du premier unsigned int où a et b diffèrent. Le résultat est positif si a
> b, négatif si a < b et nul si a == b. Tous les calculs se
feront élément de tableau par élément de tableau, et devront ainsi
être faits en base 10 9. La taille des résultats est calculable à
un élément près, et on supprimera celui-ci par réallocation si il est
nul.Nombre | Nombre de chiffres | Année | Auteur ou Ordinateur |
M17 | 6 | 1588 | Cataldi |
M19 | 6 | 1588 | Cataldi |
M31 | 10 | 1772 | Euler |
M127 | 39 | 1876 | Lucas |
M521 | 157 | 1952 | SWAC |
M607 | 183 | 1952 | SWAC |
M4253 | 1281 | 1961 | IBM 7090 |
M21701 | 6533 | 1978 | Cyber 174 |
M44497 | 13395 | 1979 | Cray 1 |
M756839 | 227832 | 1992 | Cray 2 |
M8972593 | 2098960 | 1999 | Pentium II |
main
, qui est une boucle
infinie gérant les événements souris et clavier (entre autres). Vous
devez essentiellement intervenir au niveau de la fonction
HandleTouch
qui est appelée lors d'un clic souris sur une
touche du clavier. De même pour les fonctions print
,
clear
et quit
, appelées lors d'un clic sur le bouton
correspondant. Vous trouverez tout ceci dans
~levaire/TPC/sample/projet9900/
. De plus amples explications se
trouveront dans le fichier README
.Ce document a été traduit de LATEX par HEVEA.