Allocation mémoire des variables en vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

elgringo123456

XLDnaute Occasionnel
Supporter XLD
Bonjour,

Je me permets de vous solliciter sur l'allocation mémoire de variables en VBA et notamment sur les types de variables Integer & Currency.

I. Côté Integer :
Valeurs possibles de -32 768 à +32 767 = 65 536 (en prenant en compte le 0)
65 536 = 2^16
1 octet = 8 bits => codage des Integer sur 2 octets

II. Côté Currency
Valeurs possibles de Valeurs de -922 337 203 685 477.5808 à +922 337 203 685 477.5807
En appliquant la même méthode j'effectue les calculs suivants :

A. Valeurs positives :

+ Element 0 : => 1 valeur
+ Element de 0.01 à 922 337 203 685 477.0000 :
=> (922 337 203 685 477 x 10 000) valeurs

+ Element de 922 337 203 685 477.0001 à 922 337 203 685 477.5807 :
=> 5 807 valeurs


B. Valeurs négatives :
+ Element de -(0.01 à 922 337 203 685 477) :
=> (922 337 203 685 477 x 10 000) valeurs

+ Element de -(922 337 203 685 477.0001 à 922 337 203 685 477.5808) :
=> 5 808 valeurs


Au total :
922 337 203 685 477 + 922 337 203 685 477 = 1 844 674 407 370 954
1 844 674 407 370 954 x 1 0000 = 18 446 744 073 709 540 000
18 446 744 073 709 540 000 + (5 808 x 2) = 18 446 744 073 709 540 000 + 11 616
= 18 446 744 073 709 551 616

Le chiffre au-dessus est-il égal à 2^64 car j'ai du mal à avoir le calcul exact ?

Mon raisonnement est-il correct ?
Est ce que j'aurais raté un concept ?

Merci d'avance de vos éclaircissements.
Cordilalement
ElGringo1234567 qui n'en finit pas d'apprendre ....
 
Bonjour,

Pas bien compris pourquoi tu sépares partie entière/décimale.
Currency est un entier, avec virgule fixe à 4 décimale mais un entier quand même.
Si je ne m'abuse il est stocké sur 8 octets soit 2^(8*8). Divisé par 2 (positifs et négatifs) = +/- 9.22337E+18 avec donc 18 (presque 19) chiffres significatifs.
eric

en résumé ne tiens pas compte de la virgule.
Décompte :
922 337 203 685 477 5808 négatifs + 1 (le 0) + 922 337 203 685 4775807 positifs = 2^64
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour