Constantes de tipo de dados
Constantes de tipo de dados são intervalos de valores dependentes de implementação permitidos para tipos de dados integrais e de ponto flutuante.
Constantes de tipo integral
Essas constantes oferecem os intervalos para os tipos de dados integrais. Para usar essas constantes, inclua o cabeçalho limits.h em seu arquivo de origem:
#include <limits.h>
Observação
A opção do compilador /J
altera o tipo char
padrão de signed char
para unsigned char
.
Constante | Valor | Descrição |
---|---|---|
CHAR_BIT |
8 | O número de bits em um char |
SCHAR_MIN |
(-128) | Valor signed char Mínimo |
SCHAR_MAX |
127 | Valor signed char Máximo |
UCHAR_MAX |
255 (0xff) | Valor unsigned char Máximo |
CHAR_MIN |
(-128) (0 se a opção /J for usada) |
Valor char Mínimo |
CHAR_MAX |
127 (255 se a opção /J for usada) |
Valor char Máximo |
MB_LEN_MAX |
5 | O número máximo de bytes em um multibyte char |
SHRT_MIN |
-32768 | Valor signed short Mínimo |
SHRT_MAX |
32767 | Valor signed short Máximo |
USHRT_MAX |
65535 (0xffff) | Valor unsigned short Máximo |
INT_MIN |
(-2147483647 - 1) | Valor signed int Mínimo |
INT_MAX |
2147483647 | Valor signed int Máximo |
UINT_MAX |
4294967295 (0xffffffff) | Valor unsigned int Máximo |
LONG_MIN |
(-2147483647L - 1) | Valor signed long Mínimo |
LONG_MAX |
2147483647L | Valor signed long Máximo |
ULONG_MAX |
4294967295UL (0xfffffffful) | Valor unsigned long Máximo |
LLONG_MIN |
(-9223372036854775807LL - 1) | Valor mínimo signed long long ou __int64 |
LLONG_MAX |
9223372036854775807LL | Valor máximo signed long long ou __int64 |
ULLONG_MAX |
0xffffffffffffffffull | Valor unsigned long long Máximo |
_I8_MIN |
(-127i8 - 1) | Valor mínimo de 8 bits com sinal |
_I8_MAX |
127i8 | Valor máximo de 8 bits com sinal |
_UI8_MAX |
0xffui8 | Valor máximo de 8 bits sem sinal |
_I16_MIN |
(-32767i16 - 1) | Valor mínimo de 16 bits com sinal |
_I16_MAX |
32767i16 | Valor máximo de 16 bits com sinal |
_UI16_MAX |
0xffffui16 | Valor máximo de 16 bits sem sinal |
_I32_MIN |
(-2147483647i32 - 1) | Valor mínimo de 32 bits com sinal |
_I32_MAX |
2147483647i32 | Valor máximo de 32 bits com sinal |
_UI32_MAX |
0xffffffffui32 | Valor máximo de 32 bits sem sinal |
_I64_MIN |
(-9223372036854775807 - 1) | Valor mínimo de 64 bits com sinal |
_I64_MAX |
9223372036854775807 | Valor máximo de 64 bits com sinal |
_UI64_MAX |
0xffffffffffffffffui64 | Valor máximo de 64 bits sem sinal |
_I128_MIN |
(-170141183460469231731687303715884105727i128 - 1) | Valor mínimo de 128 bits com sinal |
_I128_MAX |
170141183460469231731687303715884105727i128 | Valor máximo de 128 bits com sinal |
_UI128_MAX |
0xffffffffffffffffffffffffffffffffui128 | Valor máximo de 128 bits sem sinal |
SIZE_MAX |
o mesmo que _UI64_MAX se _WIN64 for definido, ou UINT_MAX |
Tamanho máximo de inteiro nativo |
RSIZE_MAX |
o mesmo que (SIZE_MAX >> 1) |
Tamanho de inteiro máximo de biblioteca segura |
Constantes de tipo de ponto flutuante
As constantes a seguir fornecem o intervalo e outras características dos tipos de dados long double
, double
e float
. Para usar essas constantes, inclua o cabeçalho float.h em seu arquivo de origem:
#include <float.h>
Constante | Valor | Descrição |
---|---|---|
DBL_DECIMAL_DIG |
17 | Nº de dígitos decimais de precisão de arredondamento |
DBL_DIG |
15 | Nº de casas decimais de precisão |
DBL_EPSILON |
2.2204460492503131e-016 | O menor valor, de forma que 1,0 + DBL_EPSILON != 1,0 |
DBL_HAS_SUBNORM |
1 | Tipo é compatível com números subnormais (desnormalizados) |
DBL_MANT_DIG |
53 | n º de bits no significando (mantissa) |
DBL_MAX |
1,7976931348623158e+308 | Valor máximo |
DBL_MAX_10_EXP |
308 | Expoente decimal máximo |
DBL_MAX_EXP |
1024 | Expoente binário máximo |
DBL_MIN |
2,2250738585072014e-308 | Valor mínimo normalizado positivo |
DBL_MIN_10_EXP |
(-307) | Expoente decimal mínimo |
DBL_MIN_EXP |
(-1021) | Expoente binário mínimo |
_DBL_RADIX |
2 | Expoente base |
DBL_TRUE_MIN |
4,9406564584124654e-324 | Valor mínimo subnormal positivo |
FLT_DECIMAL_DIG |
9 | Número de dígitos decimais de precisão do arredondamento |
FLT_DIG |
6 | Número de dígitos decimais de precisão |
FLT_EPSILON |
1.192092896e-07F | O menor valor, de forma que 1,0 + FLT_EPSILON != 1,0 |
FLT_HAS_SUBNORM |
1 | Tipo é compatível com números subnormais (desnormalizados) |
FLT_MANT_DIG |
24 | Número de bits no significando (mantissa) |
FLT_MAX |
3.402823466e+38F | Valor máximo |
FLT_MAX_10_EXP |
38 | Expoente decimal máximo |
FLT_MAX_EXP |
128 | Expoente binário máximo |
FLT_MIN |
1.175494351e-38F | Valor mínimo normalizado positivo |
FLT_MIN_10_EXP |
(-37) | Expoente decimal mínimo |
FLT_MIN_EXP |
(-125) | Expoente binário mínimo |
FLT_RADIX |
2 | Expoente base |
FLT_TRUE_MIN |
1,401298464e-45F | Valor mínimo subnormal positivo |
LDBL_DIG |
15 | Nº de casas decimais de precisão |
LDBL_EPSILON |
2.2204460492503131e-016 | O menor valor, de forma que 1,0 + LDBL_EPSILON != 1,0 |
LDBL_HAS_SUBNORM |
1 | Tipo é compatível com números subnormais (desnormalizados) |
LDBL_MANT_DIG |
53 | n º de bits no significando (mantissa) |
LDBL_MAX |
1,7976931348623158e+308 | Valor máximo |
LDBL_MAX_10_EXP |
308 | Expoente decimal máximo |
LDBL_MAX_EXP |
1024 | Expoente binário máximo |
LDBL_MIN |
2,2250738585072014e-308 | Valor mínimo normalizado positivo |
LDBL_MIN_10_EXP |
(-307) | Expoente decimal mínimo |
LDBL_MIN_EXP |
(-1021) | Expoente binário mínimo |
_LDBL_RADIX |
2 | Expoente base |
LDBL_TRUE_MIN |
4,9406564584124654e-324 | Valor mínimo subnormal positivo |
DECIMAL_DIG |
mesmo que DBL_DECIMAL_DIG |
Padrão (duplo) de casas decimais de precisão de arredondamento |