tipos tipo que programacion float ejemplos declaracion datos dato c++ types

c++ - que - tipos de variables en java ejemplos



¿Hay tipos más grandes que long long int en C++? (8)

Hay una extensión de gcc para enteros de 128 bits .

¿Hay tipos más grandes que long long int en C ++?

Mi compilador es g ++.


No, pero puede usar librerías como GMP para manejar números más grandes.


Resumiendo ...

Si necesita almacenar valores enteros exactos que no caben en ''long long'', gcc ofrece el tipo __int128 . Esta es una extensión de gcc , no parte de C ++ estándar (a partir de este escrito).

Si necesita trabajar con valores enteros exactos incluso mayores, probablemente necesite un paquete aritmético de precisión arbitraria , como GMP . Si su necesidad es muy limitada, puede pasar su propio código de precisión extendido, pero puede volverse más complicado (y menos eficiente y confiable) que utilizar una biblioteca existente.

Si necesita almacenar números más grandes pero no necesita almacenar los valores más grandes exactamente, puede usar flotante o doble : estos pueden representar números de magnitud mucho mayor, pero con menos precision .

Y, por supuesto, si solo quieres ocupar más memoria, declara una matriz ;-)


Según cuál sea su necesidad, puede crear su propia estructura para manejar el tipo de datos:

#include <cstdint> struct uint256_t { std::uint64_t bits[4]; }; uint256_t x;


Si sabe que su número siempre será positivo, puede ampliar el alcance de una int etiquetándolo como 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



__int128
__uint128

1.


Estándares

Los tipos de entero extendido están explícitamente permitidos por los estándares C y C ++.

C ++ 11

C ++ 11 N3337 borrador 3.9.1 "Tipos fundamentales" párrafo 3 dice:

Hay cinco tipos de entero con signo estándar: "signed char", "short int", "int", "long int" y "long long int". En esta lista, cada tipo proporciona al menos tanto almacenamiento como los que lo preceden en la lista. También puede haber tipos de entero extendido con extensión definida por la implementación. Los tipos enteros con signo estándar y extendido se denominan colectivamente tipos de entero con signo. Las aplicaciones sencillas tienen el tamaño natural sugerido por la arquitectura del entorno de ejecución; los otros tipos de entero con signo se proporcionan para satisfacer necesidades especiales.

También debe considerar intmax_t , que 18.4.1 "Sinopsis de encabezado", párrafo 2, dice:

El encabezado define todas las funciones, tipos y macros igual que 7.18 en el estándar C.

C99

El borrador C99 N1256 los permite explícitamente en 6.2.5 párrafo 4 "Tipos":

Hay cinco tipos de entero con signo estándar, designados como char firmado, short int, int, long int y long long int. (Estos y otros tipos pueden designarse de varias formas adicionales, como se describe en 6.7.2.) También pueden existir tipos de entero con signo extendido definidos por la implementación.28) Los tipos de entero con signo extendido y estándar se denominan colectivamente tipos enteros con signo.29 )

y 7.18.1.5 "Tipos enteros de mayor ancho", el párrafo 1 dice:

El siguiente tipo designa un tipo de entero con signo capaz de representar cualquier valor de cualquier tipo de entero con signo:

intmax_t