55 votes

Existe-t-il des types plus grands que long long int en C++ ?

Existe-t-il des types plus grands que long long int en C++ ?

Mon compilateur est g++.

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 que long 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.

6voto

Spike0xff Points 666

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 ;-)

2voto

Gunner Stone Points 512

Si vous savez que votre nombre sera toujours positif, vous pouvez étendre le champ d'application de l'option int en l'étiquetant comme unsigned

int myNum; // Range is from –2,147,483,648 to 2,147,483,647

unsigned int myNum; // Range is from 0 to 4,294,967,295

0voto

TCS Points 2034

Vous pouvez consulter la classe BigInt... http://sourceforge.net/projects/cpp-bigint/

(Il existe de nombreux autres BigInts...)

0voto

Kapil Points 152

Vous pouvez utiliser

#include <boost/multiprecision/cpp_int.hpp>  
using namespace boost::multiprecision;

pour travailler avec des types de données plus grands que long long int et le type de données est cpp_int Réf.

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