Je suis en train d'écrire un code Python pour calculer des grands nombres, et je suis très préoccupé par la mémoire utilisée dans le calcul.
Ainsi, je veux compter chaque bit de chaque variable.
Par exemple, j'ai une variable x qui est un grand nombre, et nous voulons compter le nombre de bits pour représenter x .
Le code suivant est évidemment inutile :
x=2**1000
len(x)
Ainsi, je me tourne vers l'utilisation du code suivant :
x=2**1000
len(repr(x))
La variable x est (en décimal) est :
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
mais le code ci-dessus renvoie 303
La longue séquence ci-dessus est de longueur 302, et je crois donc que 303 doit être liée à la longueur de la chaîne uniquement.
Donc, voici ma question initiale :
Comment puis-je connaître la taille de la mémoire d'une variable x ?
Encore une chose ; en langage C/C++, si je définis
int z=1;
Cela signifie qu'il y a 4 octets= 32 bits alloués pour z et les bits sont disposés comme suit : 00..001 (31 0 et un 1).
Ici, ma variable x est énorme, je ne sais pas si elle suit la même règle d'allocation de mémoire ?