Constantes de tipo de datos
Las constantes de tipo de datos son intervalos de valores dependientes de la implementación permitidos para los tipos de datos enteros y de punto flotante.
Constantes de tipo de datos entero
Estas constantes proporcionan los rangos de los tipos de datos enteros. Para usarlas, debe incluir el encabezado limits.h en el archivo de origen:
#include <limits.h>
Nota:
La opción de compilador /J
cambia el tipo char
predeterminado de signed char
a unsigned char
.
Constante | Value | Descripción |
---|---|---|
CHAR_BIT |
8 | Número de bits en char |
SCHAR_MIN |
(-128) | Mínimo valor signed char |
SCHAR_MAX |
127 | Máximo valor signed char |
UCHAR_MAX |
255 (0xff) | Máximo valor unsigned char |
CHAR_MIN |
(-128) (0 si se usa la opción /J ) |
Mínimo valor char |
CHAR_MAX |
127 (255 si se usa la opción /J ) |
Máximo valor char |
MB_LEN_MAX |
5 | Número máximo de bytes en un char multibyte |
SHRT_MIN |
-32768 | Mínimo valor signed short |
SHRT_MAX |
32767 | Máximo valor signed short |
USHRT_MAX |
65535 (0xffff) | Máximo valor unsigned short |
INT_MIN |
(-2147483647 - 1) | Mínimo valor signed int |
INT_MAX |
2147483647 | Máximo valor signed int |
UINT_MAX |
4294967295 (0xffffffff) | Máximo valor unsigned int |
LONG_MIN |
(-2147483647L - 1) | Mínimo valor signed long |
LONG_MAX |
2147483647L | Máximo valor signed long |
ULONG_MAX |
4294967295UL (0xfffffffful) | Máximo valor unsigned long |
LLONG_MIN |
(-9223372036854775807LL - 1) | Valor mínimo signed long long o __int64 |
LLONG_MAX |
9223372036854775807LL | Valor máximo signed long long o __int64 |
ULLONG_MAX |
0xffffffffffffffffull | Máximo valor unsigned long long |
_I8_MIN |
(-127i8 - 1) | Valor mínimo de 8 bits con signo |
_I8_MAX |
127i8 | Valor máximo de 8 bits con signo |
_UI8_MAX |
0xffui8 | Valor máximo de 8 bits sin signo |
_I16_MIN |
(-32767i16 - 1) | Valor mínimo de 16 bits con signo |
_I16_MAX |
32767i16 | Valor máximo de 16 bits con signo |
_UI16_MAX |
0xffffui16 | Valor máximo de 16 bits sin signo |
_I32_MIN |
(-2147483647i32 - 1) | Valor mínimo de 32 bits con signo |
_I32_MAX |
2147483647i32 | Valor máximo de 32 bits con signo |
_UI32_MAX |
0xffffffffui32 | Valor máximo de 32 bits sin signo |
_I64_MIN |
(-9223372036854775807 - 1) | Valor mínimo de 64 bits con signo |
_I64_MAX |
9223372036854775807 | Valor máximo de 64 bits con signo |
_UI64_MAX |
0xffffffffffffffffui64 | Valor máximo de 64 bits sin signo |
_I128_MIN |
(-170141183460469231731687303715884105727i128 - 1) | Valor mínimo de 128 bits con signo |
_I128_MAX |
170141183460469231731687303715884105727i128 | Valor máximo de 128 bits con signo |
_UI128_MAX |
0xffffffffffffffffffffffffffffffffui128 | Valor máximo de 128 bits sin signo |
SIZE_MAX |
igual que _UI64_MAX si se define _WIN64 o UINT_MAX |
Tamaño máximo de entero nativo |
RSIZE_MAX |
igual que (SIZE_MAX >> 1) |
Tamaño máximo de biblioteca segura de enteros |
Constantes de tipo de punto flotante
Las constantes siguientes proporcionan el intervalo y otras características de los tipos de datos long double
, double
y float
. Para usarlas, debe incluir el encabezado float.h en el archivo de origen:
#include <float.h>
Constante | Value | Descripción |
---|---|---|
DBL_DECIMAL_DIG |
17 | Número de dígitos decimales de precisión de redondeo |
DBL_DIG |
15 | Número de dígitos decimales de precisión |
DBL_EPSILON |
2.2204460492503131e-016 | Valor más pequeño, de modo que 1.0 + DBL_EPSILON != 1.0 |
DBL_HAS_SUBNORM |
1 | El tipo admite números no normales (denormales) |
DBL_MANT_DIG |
53 | Número de bits en la mantisa |
DBL_MAX |
1.7976931348623158e+308 | Valor máximo |
DBL_MAX_10_EXP |
308 | Máximo exponente decimal |
DBL_MAX_EXP |
1024 | Máximo exponente binario |
DBL_MIN |
2.2250738585072014e-308 | Valor positivo normalizado mínimo |
DBL_MIN_10_EXP |
(-307) | Mínimo exponente decimal |
DBL_MIN_EXP |
(-1021) | Mínimo exponente binario |
_DBL_RADIX |
2 | Base de exponente |
DBL_TRUE_MIN |
4.9406564584124654e-324 | Valor no normal positivo mínimo |
FLT_DECIMAL_DIG |
9 | Número de dígitos decimales de precisión de redondeo |
FLT_DIG |
6 | Número de dígitos decimales de precisión |
FLT_EPSILON |
1.192092896e-07F | Valor más pequeño, de modo que 1.0 + FLT_EPSILON != 1.0 |
FLT_HAS_SUBNORM |
1 | El tipo admite números no normales (denormales) |
FLT_MANT_DIG |
24 | Número de bits en la mantisa |
FLT_MAX |
3.402823466e+38F | Valor máximo |
FLT_MAX_10_EXP |
38 | Máximo exponente decimal |
FLT_MAX_EXP |
128 | Máximo exponente binario |
FLT_MIN |
1.175494351e-38F | Valor positivo normalizado mínimo |
FLT_MIN_10_EXP |
(-37) | Mínimo exponente decimal |
FLT_MIN_EXP |
(-125) | Mínimo exponente binario |
FLT_RADIX |
2 | Base de exponente |
FLT_TRUE_MIN |
1.401298464e-45F | Valor no normal positivo mínimo |
LDBL_DIG |
15 | Número de dígitos decimales de precisión |
LDBL_EPSILON |
2.2204460492503131e-016 | Valor más pequeño, de modo que 1.0 + LDBL_EPSILON != 1.0 |
LDBL_HAS_SUBNORM |
1 | El tipo admite números no normales (denormales) |
LDBL_MANT_DIG |
53 | Número de bits en la mantisa |
LDBL_MAX |
1.7976931348623158e+308 | Valor máximo |
LDBL_MAX_10_EXP |
308 | Máximo exponente decimal |
LDBL_MAX_EXP |
1024 | Máximo exponente binario |
LDBL_MIN |
2.2250738585072014e-308 | Valor positivo normalizado mínimo |
LDBL_MIN_10_EXP |
(-307) | Mínimo exponente decimal |
LDBL_MIN_EXP |
(-1021) | Mínimo exponente binario |
_LDBL_RADIX |
2 | Base de exponente |
LDBL_TRUE_MIN |
4.9406564584124654e-324 | Valor no normal positivo mínimo |
DECIMAL_DIG |
igual que DBL_DECIMAL_DIG |
Dígitos decimales predeterminados (dobles) de precisión de redondeo |