Question

Je dois utiliser des entiers non signés pouvant couvrir plus de 4 octets, quel type dois-je utiliser?

PS Désolé pour le " noobism " mais c'est tout: D

NB: j’ai besoin d’entiers car je dois faire des divisions et ne me préoccuper que des parties entières. Ainsi, int sont utiles

Était-ce utile?

La solution

long long , entier 64 bits ... ici , vous trouverez des références sur les types de données et les plages ...

Autres conseils

Incluez simplement < stdint.h > et utilisez int64_t et uint64_t (puisque vous voulez non signé, vous voulez uint64_t).

Il existe plusieurs autres variantes utiles dans cet en-tête, comme les plus petites variantes (uint_least64_t est un type d'au moins 64 bits) et les variantes rapides (uint_fast64_t est le type entier le plus rapide avec au moins 64 bits). Intptr_t / uintptr_t (assez grand pour un pointeur vide) et intmax_t / uintmax_t (type le plus grand) sont également très utiles.

Et si, pour une raison quelconque, votre compilateur n’a pas de < stdint.h > (IIRC étant une norme C et non une norme C ++), vous pouvez utiliser boost / cstdint.hpp (que vous pouvez utiliser même si vous avez un < stdint.h > ;, car dans ce cas, il devrait tout simplement être transmis à l'en-tête du compilateur) .

Faites votre choix:

long long (& # 8211; 9 223 372 036 854 775 808 à 9 223 372 036 854 755 807)

unsigned long long: (0 à 18 446 744 073 709 551 615)

Si vous avez besoin d’entiers très longs (précision arbitraire), vous pouvez également essayer la bibliothèque gmp , qui fournit également une interface basée sur la classe C ++.

unsigned long long - sa longueur est d'au moins 64 bits

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top