Costanti del tipo di dati
Le costanti dei tipi di dati sono gli intervalli di valori dipendenti dall'implementazione consentiti per i tipi di dati integrali e a virgola mobile.
Costanti del tipo di dati integrale
Queste costanti specificano gli intervalli per i tipi di dati integrali. Per usare queste costanti, includere l'intestazione limits.h nel file di origine:
#include <limits.h>
Nota
L'opzione /J
del compilatore modifica il tipo predefinito char
da signed char
a unsigned char
.
Costante | valore | Descrizione |
---|---|---|
CHAR_BIT |
8 | Numero di bit in char |
SCHAR_MIN |
(-128) | Valore minimo di signed char |
SCHAR_MAX |
127 | Valore massimo di signed char |
UCHAR_MAX |
255 (0xff) | Valore massimo di unsigned char |
CHAR_MIN |
(-128) (0 se /J usata l'opzione) |
Valore minimo di char |
CHAR_MAX |
127 (255 se /J usata l'opzione) |
Valore massimo di char |
MB_LEN_MAX |
5 | Numero massimo di byte in multibyte char |
SHRT_MIN |
-32768 | Valore minimo di signed short |
SHRT_MAX |
32767 | Valore massimo di signed short |
USHRT_MAX |
65535 (0xffff) | Valore massimo di unsigned short |
INT_MIN |
(-2147483647 - 1) | Valore minimo di signed int |
INT_MAX |
2147483647 | Valore massimo di signed int |
UINT_MAX |
4294967295 (0xffffffff) | Valore massimo di unsigned int |
LONG_MIN |
(-2147483647L - 1) | Valore minimo di signed long |
LONG_MAX |
2147483647L | Valore massimo di signed long |
ULONG_MAX |
4294967295UL (0xfffffffful) | Valore massimo di unsigned long |
LLONG_MIN |
(-9223372036854775807LL - 1) | Valore minimo signed long long o __int64 |
LLONG_MAX |
9223372036854775807LL | Valore massimo signed long long o __int64 |
ULLONG_MAX |
0xffffffffffffffffull | Valore massimo di unsigned long long |
_I8_MIN |
(-127i8 - 1) | Valore minimo signed a 8 bit |
_I8_MAX |
127i8 | Valore massimo signed a 8 bit |
_UI8_MAX |
0xffui8 | Valore massimo unsigned a 8 bit |
_I16_MIN |
(-32767i16 - 1) | Valore minimo signed a 16 bit |
_I16_MAX |
32767i16 | Valore massimo signed a 16 bit |
_UI16_MAX |
0xffffui16 | Valore massimo unsigned a 16 bit |
_I32_MIN |
(-2147483647i32 - 1) | Valore minimo signed a 32 bit |
_I32_MAX |
2147483647i32 | Valore massimo signed a 32 bit |
_UI32_MAX |
0xffffffffui32 | Valore massimo unsigned a 32 bit |
_I64_MIN |
(-9223372036854775807 - 1) | Valore minimo signed a 64 bit |
_I64_MAX |
9223372036854775807 | Valore massimo signed a 64 bit |
_UI64_MAX |
0xffffffffffffffffui64 | Valore massimo unsigned a 64 bit |
_I128_MIN |
(-170141183460469231731687303715884105727i128 - 1) | Valore minimo signed a 128 bit |
_I128_MAX |
170141183460469231731687303715884105727i128 | Valore massimo signed a 128 bit |
_UI128_MAX |
0xffffffffffffffffffffffffffffffffui128 | Valore massimo unsigned a 128 bit |
SIZE_MAX |
uguale a _UI64_MAX se _WIN64 è definito o UINT_MAX |
Dimensioni massime integer nativi |
RSIZE_MAX |
uguale a (SIZE_MAX >> 1) |
Dimensioni massime integer della libreria protetta |
Costanti del tipo di dati a virgola mobile
Le costanti seguenti forniscono l'intervallo e altre caratteristiche dei long double
tipi di dati e double
float
. Per usare queste costanti, includere l'intestazione float.h nel file di origine:
#include <float.h>
Costante | valore | Descrizione |
---|---|---|
DBL_DECIMAL_DIG |
17 | N. di cifre decimali di approssimazione di arrotondamento |
DBL_DIG |
15 | N. di cifre decimali di precisione |
DBL_EPSILON |
2.2204460492503131e-016 | Più piccolo in modo che 1,0 + DBL_EPSILON != 1,0 |
DBL_HAS_SUBNORM |
1 | Il tipo supporta i numeri subnormali (denormalizzati) |
DBL_MANT_DIG |
53 | N. di bit nel significando (mantissa) |
DBL_MAX |
1,7976931348623158e+308 | Valore massimo |
DBL_MAX_10_EXP |
308 | Esponente decimale massimo |
DBL_MAX_EXP |
1024 | Esponente binario massimo |
DBL_MIN |
2,2250738585072014e-308 | Valore positivo normalizzato minimo |
DBL_MIN_10_EXP |
(-307) | Esponente decimale minimo |
DBL_MIN_EXP |
(-1021) | Esponente binario minimo |
_DBL_RADIX |
2 | Base dell'esponente |
DBL_TRUE_MIN |
4.9406564584124654e-324 | Valore subnormale positivo minimo |
FLT_DECIMAL_DIG |
9 | Numero di cifre decimali di approssimazione di arrotondamento |
FLT_DIG |
6 | Numero di cifre decimali di precisione |
FLT_EPSILON |
1.192092896e-07F | Più piccolo in modo che 1,0 + FLT_EPSILON != 1,0 |
FLT_HAS_SUBNORM |
1 | Il tipo supporta i numeri subnormali (denormalizzati) |
FLT_MANT_DIG |
24 | Numero di bit nel significando (mantissa) |
FLT_MAX |
3.402823466e+38F | Valore massimo |
FLT_MAX_10_EXP |
38 | Esponente decimale massimo |
FLT_MAX_EXP |
128 | Esponente binario massimo |
FLT_MIN |
1.175494351e-38F | Valore positivo normalizzato minimo |
FLT_MIN_10_EXP |
(-37) | Esponente decimale minimo |
FLT_MIN_EXP |
(-125) | Esponente binario minimo |
FLT_RADIX |
2 | Base dell'esponente |
FLT_TRUE_MIN |
1.401298464e-45F | Valore subnormale positivo minimo |
LDBL_DIG |
15 | N. di cifre decimali di precisione |
LDBL_EPSILON |
2.2204460492503131e-016 | Più piccolo in modo che 1,0 + LDBL_EPSILON != 1,0 |
LDBL_HAS_SUBNORM |
1 | Il tipo supporta i numeri subnormali (denormalizzati) |
LDBL_MANT_DIG |
53 | N. di bit nel significando (mantissa) |
LDBL_MAX |
1,7976931348623158e+308 | Valore massimo |
LDBL_MAX_10_EXP |
308 | Esponente decimale massimo |
LDBL_MAX_EXP |
1024 | Esponente binario massimo |
LDBL_MIN |
2,2250738585072014e-308 | Valore positivo normalizzato minimo |
LDBL_MIN_10_EXP |
(-307) | Esponente decimale minimo |
LDBL_MIN_EXP |
(-1021) | Esponente binario minimo |
_LDBL_RADIX |
2 | Base dell'esponente |
LDBL_TRUE_MIN |
4.9406564584124654e-324 | Valore subnormale positivo minimo |
DECIMAL_DIG |
uguale a DBL_DECIMAL_DIG |
Cifre decimali (double) predefinite di approssimazione di arrotondamento |