Entier à +de 15 chiffres

vorx -  
 SKZ -
Bonjour à tous
je suis amateur en VB6
Dans un prog testant des entiers pour la conjecture de Syracuse(Rappel:prendre un entier s'il est pair le diviser par 2,s'il est impair le multiplier par 3 et ajouter 1:on finit tjrs par tomber sur le cycle 4-2-1[conjecture non démontrée]),
j'entre dans une zone de texte un entier quelconque;puis
dans une liste j'obtient tous les entiers qui découlent de la conjecture.
Cependant quand le nbre entier initial dépasse 15 chiffres j'obtient des entiers arrondis .
Question:Y-a-t'il moyen de formater ou d'obtenir un entier à + de 15 chiffres sans que celui ci soit arrondi
Merci d'avance pour votre aide.

1 réponse

SKZ
 
Des entiers arrondis ??

Faudra m'expliquer... Des entier tronqués, entier modulo 4G, mais des entier arrondis : autant que mes yeux pour le coup, bref...
Ca marche pas.

Le problème est que tu atteint la limite max de la taille d'un registre du microprocesseur : 32 bits. Comme pour l'écran d'une calculatrice, quand c'est rempli, plus moyen d'écrire.
Suivant le type de variable utilisé (signées ou non-signées), le résultat du "débordement" est différent : soit on revient à zéro, sois on rivient à -2 millions et quelques...

Certain language propose un format sur 64 bits (long int en C par exemple, en VB sait pas) mais y'aura encore une limite.

Alors la solution est de programmer un type entier qui utilise un tableau d'entier. Pour retrouver le nombre, il faut additionner le premier entier au deuxième multiplié par 4G, puis additionner le troisième par 4G au carré, puis le 4 multiplié par 4G au cube, etc...

Normalement t'as plus trop de soucis, mais théorique il reste une limite : la taille de la mémoire...

(NB : 1G=2 puissance 30=1024*1024*1024 soit un peu + d'un milliard.
4G = 2^32, le premier entier qui dépasse 32 bits en non signé)
0