web-dev-qa-db-fra.com

La taille à double octet dans les systèmes d'exploitation 32 bits et 64 bits

Existe-t-il une différence dans la taille double lorsque j'exécute mon application sur un environnement 32 et 64 bits?

Si je ne me trompe pas, l'environnement double en 32 bits prendra 16 chiffres après 0, tandis que le double en 64 bits prendra 32 bits, ai-je raison?

33
Graviton

Non, un nombre à virgule flottante double précision IEEE 754 est toujours 64 bits. De même, un float simple précision vaut toujours 32 bits.

Si votre question concerne spécifiquement C # et/ou .NET (comme l'indique votre balise), toutes les tailles de type de données sont fixes, indépendamment de votre Architecture du système. C'est la même chose que Java, mais différent de C et C++ où les tailles de types varient d'une plateforme à l'autre.

Il est courant que les types intégraux aient des tailles différentes sur différentes architectures en C et C++. Par exemple, int avait une largeur de 16 bits sous DOS 16 bits et une largeur de 32 bits sous Win32. Cependant, la norme IEEE 754 est tellement omniprésente pour le calcul en virgule flottante que les tailles de float et double font pas varient sur n'importe quel système que vous trouverez dans le monde réel - il y a 20 ans double était de 64 bits et il en est de même aujourd'hui.

64
John Kugelman

En c # double est toujours 8 octets (64 bits)

10
Learner

Ça ne change pas.

Un moyen simple de vérifier cela consiste à écrire une application console simple avec

Console.WriteLine(Double.MaxValue);

et la compilation à la fois x86 et x64.

8
statenjason