Константы типа данных
Константы типа данных — это зависящие от реализации диапазоны значений, допустимые для целочисленных типов данных и типов данных с плавающей запятой.
Константы целочисленных типов
Эти константы предоставляют диапазоны значений для целочисленных типов данных. Чтобы использовать их, включите заголовок limits.h в исходный файл.
#include <limits.h>
Примечание.
Параметр /J
компилятора изменяет тип по умолчанию char
на signed char
unsigned char
.
Константа | значение | Описание |
---|---|---|
CHAR_BIT |
8 | Число бит для char |
SCHAR_MIN |
(–128) | Минимальное значение для signed char |
SCHAR_MAX |
127 | Максимальное значение для signed char |
UCHAR_MAX |
255 (0xff) | Максимальное значение для unsigned char |
CHAR_MIN |
(-128) (0, если /J используется параметр) |
Минимальное значение для char |
CHAR_MAX |
127 (255, если /J используется параметр) |
Максимальное значение для char |
MB_LEN_MAX |
5 | Максимальное число байтов для многобайтового char |
SHRT_MIN |
-32768 | Минимальное значение для signed short |
SHRT_MAX |
32767 | Максимальное значение для signed short |
USHRT_MAX |
65 535 (0xffff) | Максимальное значение для unsigned short |
INT_MIN |
(–2 147 483 647 – 1) | Минимальное значение для signed int |
INT_MAX |
2147483647 | Максимальное значение для signed int |
UINT_MAX |
4 294 967 295 (0xffffffff) | Максимальное значение для unsigned int |
LONG_MIN |
(–2 147 483 647L – 1) | Минимальное значение для signed long |
LONG_MAX |
2 147 483 647L | Максимальное значение для signed long |
ULONG_MAX |
4 294 967 295UL (0xfffffffful) | Максимальное значение для unsigned long |
LLONG_MIN |
(–9 223 372 036 854 775 807LL – 1) | Минимальное signed long long или __int64 значение |
LLONG_MAX |
9 223 372 036 854 775 807LL | Максимальное signed long long или __int64 значение |
ULLONG_MAX |
0xffffffffffffffffull | Максимальное значение для unsigned long long |
_I8_MIN |
(–127i8 – 1) | Минимальное 8-битное значение со знаком |
_I8_MAX |
127i8 | Максимальное 8-битное значение со знаком |
_UI8_MAX |
0xffui8 | Максимальное 8-битное значение без знака |
_I16_MIN |
(–32 767i16 – 1) | Минимальное 16-битное значение со знаком |
_I16_MAX |
32 767i16 | Максимальное 16-битное значение со знаком |
_UI16_MAX |
0xffffui16 | Максимальное 16-битное значение без знака |
_I32_MIN |
(–2 147 483 647i32 – 1) | Минимальное 32-битное значение со знаком |
_I32_MAX |
2 147 483 647i32 | Максимальное 32-битное значение со знаком |
_UI32_MAX |
0xffffffffui32 | Максимальное 32-битное значение без знака |
_I64_MIN |
(–9 223 372 036 854 775 807 – 1) | Минимальное 64-битное значение со знаком |
_I64_MAX |
9223372036854775807 | Максимальное 64-битное значение со знаком |
_UI64_MAX |
0xffffffffffffffffui64 | Максимальное 64-битное значение без знака |
_I128_MIN |
(–170 141 183 460 469 231 731 687 303 715 884 105 727i128 – 1) | Минимальное 128-битное значение со знаком |
_I128_MAX |
170 141 183 460 469 231 731 687 303 715 884 105 727i128 | Максимальное 128-битное значение со знаком |
_UI128_MAX |
0xffffffffffffffffffffffffffffffffui128 | Максимальное 128-битное значение без знака |
SIZE_MAX |
то же, что _UI64_MAX и _WIN64 если определено, или UINT_MAX |
Максимальный размер собственного целочисленного типа |
RSIZE_MAX |
совпадает с (SIZE_MAX >> 1) |
Максимальный размер целочисленного типа защищенной библиотеки |
Типы констант с плавающей запятой
Следующие константы дают диапазон и другие характеристики long double
double
типов данных.float
Чтобы использовать их, включите заголовок float.h в исходный файл.
#include <float.h>
Константа | значение | Описание |
---|---|---|
DBL_DECIMAL_DIG |
17 | Число десятичных разрядов точности округления |
DBL_DIG |
15 | Количество десятичных разрядов точности |
DBL_EPSILON |
2,2204460492503131e-016 | Наименьшее, что 1.0 + DBL_EPSILON != 1.0 |
DBL_HAS_SUBNORM |
1 | Тип поддерживает денормализованные числа |
DBL_MANT_DIG |
53 | Число битов в мантиссе |
DBL_MAX |
1.7976931348623158e+308 | Максимальное значение |
DBL_MAX_10_EXP |
308 | Максимальный показатель десятичной степени |
DBL_MAX_EXP |
1024 | Максимальный показатель двоичной степени |
DBL_MIN |
2.2250738585072014e-308 | Минимальное нормализованное положительное значение |
DBL_MIN_10_EXP |
(-307) | Минимальный показатель десятичной степени |
DBL_MIN_EXP |
(-1021) | Минимальный показатель двоичной степени |
_DBL_RADIX |
2 | Основание системы счисления |
DBL_TRUE_MIN |
4.9406564584124654e-324 | Минимальное денормализованное положительное значение |
FLT_DECIMAL_DIG |
9 | Число десятичных разрядов точности округления |
FLT_DIG |
6 | Число десятичных разрядов точности |
FLT_EPSILON |
1,192092896e-07F | Наименьшее, что 1.0 + FLT_EPSILON != 1.0 |
FLT_HAS_SUBNORM |
1 | Тип поддерживает денормализованные числа |
FLT_MANT_DIG |
24 | Число битов в мантиссе |
FLT_MAX |
3,402823466e+38F | Максимальное значение |
FLT_MAX_10_EXP |
38 | Максимальный показатель десятичной степени |
FLT_MAX_EXP |
128 | Максимальный показатель двоичной степени |
FLT_MIN |
1,175494351e-38F | Минимальное нормализованное положительное значение |
FLT_MIN_10_EXP |
(-37) | Минимальный показатель десятичной степени |
FLT_MIN_EXP |
(-125) | Минимальный показатель двоичной степени |
FLT_RADIX |
2 | Основание системы счисления |
FLT_TRUE_MIN |
1.401298464e-45F | Минимальное денормализованное положительное значение |
LDBL_DIG |
15 | Количество десятичных разрядов точности |
LDBL_EPSILON |
2,2204460492503131e-016 | Наименьшее, что 1.0 + LDBL_EPSILON != 1.0 |
LDBL_HAS_SUBNORM |
1 | Тип поддерживает денормализованные числа |
LDBL_MANT_DIG |
53 | Число битов в мантиссе |
LDBL_MAX |
1.7976931348623158e+308 | Максимальное значение |
LDBL_MAX_10_EXP |
308 | Максимальный показатель десятичной степени |
LDBL_MAX_EXP |
1024 | Максимальный показатель двоичной степени |
LDBL_MIN |
2.2250738585072014e-308 | Минимальное нормализованное положительное значение |
LDBL_MIN_10_EXP |
(-307) | Минимальный показатель десятичной степени |
LDBL_MIN_EXP |
(-1021) | Минимальный показатель двоичной степени |
_LDBL_RADIX |
2 | Основание системы счисления |
LDBL_TRUE_MIN |
4.9406564584124654e-324 | Минимальное денормализованное положительное значение |
DECIMAL_DIG |
то же самое, что и DBL_DECIMAL_DIG |
Число десятичных разрядов точности округления по умолчанию (два) |