Allocation mémoire des variables en vba

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

eriiic

XLDnaute Barbatruc
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:

Statistiques des forums

Discussions
312 080
Messages
2 085 140
Membres
102 792
dernier inscrit
NKO