38 votes

Est le C++11 est long long vraiment au moins 64 bits?

Il est dit ici et que le type long long est au moins aussi longtemps que l' int et n'a pas moins de 64 bits. J'ai été à la recherche sur le C++11 standard §3.9.1 Types Fondamentaux section et je ne trouve aucune référence à 64 bits. Tout ce que je peux trouver, c'est qu'il est au moins aussi longtemps à l' long int, ce qui est au moins aussi longtemps qu' int. Les listes normalisées long long comme un standard de type entier, par opposition à une prolongée , donc je me demande si cette affirmation que long long détient au moins 64 bits est vrai. Et si elle l'est, où est-il indiqué? Veuillez noter que je parle de C++11 long long seulement.

38voto

hvd Points 42125

La norme C++ références de la norme C pour cela, voir [c.limites]. LLONG_MAX est définie en <climits> avec le même sens que C <limits.h>s' LLONG_MAX. Et ce est ce que C est a dire:

5.2.4.2.1 Tailles des types d'entiers <limits.h>

Les valeurs données ci-dessous sont remplacés par des expressions constantes adapté pour une utilisation en #if de prétraitement des directives. [...] Leur mise en œuvre-la définition des valeurs doit être égale ou de plus grande ampleur (valeur absolue) à celles indiquées, avec le même signe.

[...]

-- valeur maximale pour un objet de type long long int

LLONG_MAX +9223372036854775807 // 263 -1

Un type signé qui doit être capable de représenter la valeur 9223372036854775807 nécessite 64 bits ou plus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X