Existe-t-il des types plus grands que long long int en C++ ?
Mon compilateur est g++.
Existe-t-il des types plus grands que long long int en C++ ?
Mon compilateur est g++.
En résumé...
Si vous avez besoin de stocker des valeurs entières exactes qui ne rentrent pas dans 'long long', gcc propose le type __int128 . Il s'agit d'une extension de gcc ne fait pas partie du standard C++ (à ce jour).
Si vous devez travailler avec des valeurs entières exactes encore plus grandes, vous aurez probablement besoin d'un module paquet arithmétique à précision arbitraire comme BPF . Si votre besoin est très limité, vous pouvez développer votre propre code de précision étendue, mais cela peut rapidement devenir plus compliqué (et moins efficace et fiable) que l'utilisation d'une bibliothèque existante.
Si vous avez besoin de stocker des nombres plus importants, mais que vous n'avez pas besoin de stocker exactement les valeurs les plus importantes, vous pouvez utiliser la méthode suivante float ou double : Ceux-ci peuvent représenter des nombres d'une magnitude beaucoup plus grande, mais avec moins d'informations. précision .
Et bien sûr, si vous voulez simplement occuper plus de mémoire, déclarez un tableau ;-)
Vous pouvez consulter la classe BigInt... http://sourceforge.net/projects/cpp-bigint/
(Il existe de nombreux autres BigInts...)
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.
1 votes
De quels types parlez-vous ? Des types entiers ou autres ? Qu'est-ce qui est "plus grand" dans ce cas : l'étendue ou la taille ? Dans tous les cas, le type
int[100]
est très probablement beaucoup plus grande quelong long
mais je ne pense pas que ce soit le sujet de votre question. Clarifiez votre question. Pour l'instant, elle n'a pas beaucoup de sens.1 votes
Vous pourriez essayer long long long long (je plaisante) je crois que long long long est le plus grand à 64 bits sur toutes les architectures
0 votes
Vous pouvez consulter ce site article de wikipédia qui renvoie à un certain nombre de bibliothèques capables de gérer un stockage plus important que long.
1 votes
@Jesus Ramos : Avec au moins 64 bits (pourrait être plus grand). @AndreyT : Pas officiellement, mais c'est une extension presque omniprésente que nous nous attendons également à voir dans la prochaine version de la norme (pour nous aligner sur le C).
1 votes
Le truc c'est que sizeof(long long) a une définition large étant sizeof(long) <= sizeof(long long) donc sur certaines machines ils sont en fait de la même taille 0_0 bizarre aint it
0 votes
__m128
dans mon compilateur, non standard bien sûr.3 votes
Où dois-je cliquer quand un commentaire est techniquement correct mais excessivement tatillon... @AndreyT sérieusement, vous n'avez pas compris ce qu'il voulait dire ?
0 votes
@Spike0xff : Non, je ne l'ai pas fait. Alors que le
int[100]
était manifestement une exagération intentionnelle (comme je l'ai dit tout de suite), il n'y a toujours aucun moyen de savoir si, disons,double
peut être qualifié de type "plus grand" pour les besoins de l'OP. C'est le cas ? Je ne sais pas. Il a une portée absolue "plus large", mais il y a des compromis, car il a le même nombre d'octets (en supposant que les deux sont 64 bits). Donc, est-il "plus grand" ou non ? Si cela est parfaitement clair pour vous, alors expliquez-le moi.0 votes
non signé long long