Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Data type constants are implementation-dependent ranges of values allowed for integral and floating-point data types.
These constants give the ranges for the integral data types. To use these constants, include the limits.h header in your source file:
#include <limits.h>
Note
The /J
compiler option changes the default char
type from signed char
to unsigned char
.
Constant | Value | Description |
---|---|---|
CHAR_BIT |
8 | Number of bits in a char |
SCHAR_MIN |
(-128) | Minimum signed char value |
SCHAR_MAX |
127 | Maximum signed char value |
UCHAR_MAX |
255 (0xff) | Maximum unsigned char value |
CHAR_MIN |
(-128) (0 if /J option used) |
Minimum char value |
CHAR_MAX |
127 (255 if /J option used) |
Maximum char value |
MB_LEN_MAX |
5 | Maximum number of bytes in multibyte char |
SHRT_MIN |
-32768 | Minimum signed short value |
SHRT_MAX |
32767 | Maximum signed short value |
USHRT_MAX |
65535 (0xffff) | Maximum unsigned short value |
INT_MIN |
(-2147483647 - 1) | Minimum signed int value |
INT_MAX |
2147483647 | Maximum signed int value |
UINT_MAX |
4294967295 (0xffffffff) | Maximum unsigned int value |
LONG_MIN |
(-2147483647L - 1) | Minimum signed long value |
LONG_MAX |
2147483647L | Maximum signed long value |
ULONG_MAX |
4294967295UL (0xfffffffful) | Maximum unsigned long value |
LLONG_MIN |
(-9223372036854775807LL - 1) | Minimum signed long long or __int64 value |
LLONG_MAX |
9223372036854775807LL | Maximum signed long long or __int64 value |
ULLONG_MAX |
0xffffffffffffffffull | Maximum unsigned long long value |
_I8_MIN |
(-127i8 - 1) | Minimum signed 8-bit value |
_I8_MAX |
127i8 | Maximum signed 8-bit value |
_UI8_MAX |
0xffui8 | Maximum unsigned 8-bit value |
_I16_MIN |
(-32767i16 - 1) | Minimum signed 16-bit value |
_I16_MAX |
32767i16 | Maximum signed 16-bit value |
_UI16_MAX |
0xffffui16 | Maximum unsigned 16-bit value |
_I32_MIN |
(-2147483647i32 - 1) | Minimum signed 32-bit value |
_I32_MAX |
2147483647i32 | Maximum signed 32-bit value |
_UI32_MAX |
0xffffffffui32 | Maximum unsigned 32-bit value |
_I64_MIN |
(-9223372036854775807 - 1) | Minimum signed 64-bit value |
_I64_MAX |
9223372036854775807 | Maximum signed 64-bit value |
_UI64_MAX |
0xffffffffffffffffui64 | Maximum unsigned 64-bit value |
_I128_MIN |
(-170141183460469231731687303715884105727i128 - 1) | Minimum signed 128-bit value |
_I128_MAX |
170141183460469231731687303715884105727i128 | Maximum signed 128-bit value |
_UI128_MAX |
0xffffffffffffffffffffffffffffffffui128 | Maximum unsigned 128-bit value |
SIZE_MAX |
same as _UI64_MAX if _WIN64 is defined, or UINT_MAX |
Maximum native integer size |
RSIZE_MAX |
same as (SIZE_MAX >> 1) |
Maximum secure library integer size |
The following constants give the range and other characteristics of the long double
, double
and float
data types. To use these constants, include the float.h header in your source file:
#include <float.h>
Constant | Value | Description |
---|---|---|
DBL_DECIMAL_DIG |
17 | # of decimal digits of rounding precision |
DBL_DIG |
15 | # of decimal digits of precision |
DBL_EPSILON |
2.2204460492503131e-016 | Smallest such that 1.0 + DBL_EPSILON != 1.0 |
DBL_HAS_SUBNORM |
1 | Type supports subnormal (denormal) numbers |
DBL_MANT_DIG |
53 | # of bits in significand (mantissa) |
DBL_MAX |
1.7976931348623158e+308 | Maximum value |
DBL_MAX_10_EXP |
308 | Maximum decimal exponent |
DBL_MAX_EXP |
1024 | Maximum binary exponent |
DBL_MIN |
2.2250738585072014e-308 | Minimum normalized positive value |
DBL_MIN_10_EXP |
(-307) | Minimum decimal exponent |
DBL_MIN_EXP |
(-1021) | Minimum binary exponent |
_DBL_RADIX |
2 | Exponent radix |
DBL_TRUE_MIN |
4.9406564584124654e-324 | Minimum positive subnormal value |
FLT_DECIMAL_DIG |
9 | Number of decimal digits of rounding precision |
FLT_DIG |
6 | Number of decimal digits of precision |
FLT_EPSILON |
1.192092896e-07F | Smallest such that 1.0 + FLT_EPSILON != 1.0 |
FLT_HAS_SUBNORM |
1 | Type supports subnormal (denormal) numbers |
FLT_MANT_DIG |
24 | Number of bits in significand (mantissa) |
FLT_MAX |
3.402823466e+38F | Maximum value |
FLT_MAX_10_EXP |
38 | Maximum decimal exponent |
FLT_MAX_EXP |
128 | Maximum binary exponent |
FLT_MIN |
1.175494351e-38F | Minimum normalized positive value |
FLT_MIN_10_EXP |
(-37) | Minimum decimal exponent |
FLT_MIN_EXP |
(-125) | Minimum binary exponent |
FLT_RADIX |
2 | Exponent radix |
FLT_TRUE_MIN |
1.401298464e-45F | Minimum positive subnormal value |
LDBL_DIG |
15 | # of decimal digits of precision |
LDBL_EPSILON |
2.2204460492503131e-016 | Smallest such that 1.0 + LDBL_EPSILON != 1.0 |
LDBL_HAS_SUBNORM |
1 | Type supports subnormal (denormal) numbers |
LDBL_MANT_DIG |
53 | # of bits in significand (mantissa) |
LDBL_MAX |
1.7976931348623158e+308 | Maximum value |
LDBL_MAX_10_EXP |
308 | Maximum decimal exponent |
LDBL_MAX_EXP |
1024 | Maximum binary exponent |
LDBL_MIN |
2.2250738585072014e-308 | Minimum normalized positive value |
LDBL_MIN_10_EXP |
(-307) | Minimum decimal exponent |
LDBL_MIN_EXP |
(-1021) | Minimum binary exponent |
_LDBL_RADIX |
2 | Exponent radix |
LDBL_TRUE_MIN |
4.9406564584124654e-324 | Minimum positive subnormal value |
DECIMAL_DIG |
same as DBL_DECIMAL_DIG |
Default (double) decimal digits of rounding precision |