A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://en.cppreference.com/w/c/numeric/math/../../types/limits.html below:

Numeric limits - cppreference.com

[edit] Limits of integer types Limits of core language integer types bit width of _Bool
(macro constant) bit width of byte
(macro constant) [edit] maximum number of bytes in a multibyte character
(macro constant) [edit] bit width of char, same as CHAR_BIT
(macro constant) minimum value of char
(macro constant) [edit] maximum value of char
(macro constant) [edit]

SCHAR_WIDTHSHRT_WIDTHINT_WIDTHLONG_WIDTHLLONG_WIDTH

(C23)(C23)(C23)(C23)(C23)

bit width of signed char, short, int, long, and long long respectively
(macro constant)

SCHAR_MINSHRT_MININT_MINLONG_MINLLONG_MIN

(C99)

minimum value of signed char, short, int, long and long long respectively
(macro constant) [edit]

SCHAR_MAXSHRT_MAXINT_MAXLONG_MAXLLONG_MAX

(C99)

maximum value of signed char, short, int, long and long long respectively
(macro constant) [edit]

UCHAR_WIDTHUSHRT_WIDTHUINT_WIDTHULONG_WIDTHULLONG_WIDTH

(C23)(C23)(C23)(C23)(C23)

bit width of unsigned char, unsigned short, unsigned int, unsigned long, and unsigned long long respectively
(macro constant)

UCHAR_MAXUSHRT_MAXUINT_MAXULONG_MAXULLONG_MAX

(C99)

maximum value of unsigned char, unsigned short, unsigned int,
unsigned long and unsigned long long respectively
(macro constant) [edit] maximum width N supported by the declaration of a bit-precise integer in the type specifier _BitInt(N), greater than or equal to ULLONG_WIDTH
(macro constant) Limits of library type aliases bit width of object of ptrdiff_t type
(macro constant) minimum value of ptrdiff_t
(macro constant) [edit] maximum value of ptrdiff_t
(macro constant) [edit] bit width of object of size_t type
(macro constant) maximum value of size_t
(macro constant) [edit] bit width of object of sig_atomic_t type
(macro constant) minimum value of sig_atomic_t
(macro constant) [edit] maximum value of sig_atomic_t
(macro constant) [edit] bit width of object of wint_t type
(macro constant) minimum value of wint_t
(macro constant) [edit] maximum value of wint_t
(macro constant) [edit] bit width of object of wchar_t type
(macro constant) minimum value of wchar_t
(macro constant) [edit] maximum value of wchar_t
(macro constant) [edit] [edit] Notes

The types of these constants, other than CHAR_BIT and MB_LEN_MAX, are required to match the results of the integral promotions as applied to objects of the types they describe: CHAR_MAX may have type int or unsigned int, but never char. Similarly USHRT_MAX may not be of an unsigned type: its type may be int.

A freestanding implementation may lack sig_atomic_t and/or wint_t typedef names, in which case the SIG_ATOMIC_* and/or WINT_* macros are correspondingly absent.

[edit] Example
#include <limits.h>
#include <stdint.h>
#include <stdio.h>
 
int main(void)
{
    printf("CHAR_BIT       = %d\n", CHAR_BIT);
    printf("MB_LEN_MAX     = %d\n\n", MB_LEN_MAX);
 
    printf("CHAR_MIN       = %+d\n", CHAR_MIN);
    printf("CHAR_MAX       = %+d\n", CHAR_MAX);
    printf("SCHAR_MIN      = %+d\n", SCHAR_MIN);
    printf("SCHAR_MAX      = %+d\n", SCHAR_MAX);
    printf("UCHAR_MAX      = %u\n\n", UCHAR_MAX);
 
    printf("SHRT_MIN       = %+d\n", SHRT_MIN);
    printf("SHRT_MAX       = %+d\n", SHRT_MAX);
    printf("USHRT_MAX      = %u\n\n", USHRT_MAX);
 
    printf("INT_MIN        = %+d\n", INT_MIN);
    printf("INT_MAX        = %+d\n", INT_MAX);
    printf("UINT_MAX       = %u\n\n", UINT_MAX);
 
    printf("LONG_MIN       = %+ld\n", LONG_MIN);
    printf("LONG_MAX       = %+ld\n", LONG_MAX);
    printf("ULONG_MAX      = %lu\n\n", ULONG_MAX);
 
    printf("LLONG_MIN      = %+lld\n", LLONG_MIN);
    printf("LLONG_MAX      = %+lld\n", LLONG_MAX);
    printf("ULLONG_MAX     = %llu\n\n", ULLONG_MAX);
 
    printf("PTRDIFF_MIN    = %td\n", PTRDIFF_MIN);
    printf("PTRDIFF_MAX    = %+td\n", PTRDIFF_MAX);
    printf("SIZE_MAX       = %zu\n", SIZE_MAX);
    printf("SIG_ATOMIC_MIN = %+jd\n",(intmax_t)SIG_ATOMIC_MIN);
    printf("SIG_ATOMIC_MAX = %+jd\n",(intmax_t)SIG_ATOMIC_MAX);
    printf("WCHAR_MIN      = %+jd\n",(intmax_t)WCHAR_MIN);
    printf("WCHAR_MAX      = %+jd\n",(intmax_t)WCHAR_MAX);
    printf("WINT_MIN       = %jd\n", (intmax_t)WINT_MIN);
    printf("WINT_MAX       = %jd\n", (intmax_t)WINT_MAX);
}

Possible output:

CHAR_BIT       = 8
MB_LEN_MAX     = 16
 
CHAR_MIN       = -128
CHAR_MAX       = +127
SCHAR_MIN      = -128
SCHAR_MAX      = +127
UCHAR_MAX      = 255
 
SHRT_MIN       = -32768
SHRT_MAX       = +32767
USHRT_MAX      = 65535
 
INT_MIN        = -2147483648
INT_MAX        = +2147483647
UINT_MAX       = 4294967295
 
LONG_MIN       = -9223372036854775808
LONG_MAX       = +9223372036854775807
ULONG_MAX      = 18446744073709551615
 
LLONG_MIN      = -9223372036854775808
LLONG_MAX      = +9223372036854775807
ULLONG_MAX     = 18446744073709551615
 
PTRDIFF_MIN    = -9223372036854775808
PTRDIFF_MAX    = +9223372036854775807
SIZE_MAX       = 18446744073709551615
SIG_ATOMIC_MIN = -2147483648
SIG_ATOMIC_MAX = +2147483647
WCHAR_MIN      = -2147483648
WCHAR_MAX      = +2147483647
WINT_MIN       = 0
WINT_MAX       = 4294967295
[edit] Limits of floating-point types the radix (integer base) used by the representation of all three floating-point types
(macro constant) conversion from long double to decimal with at least DECIMAL_DIG digits and back to long double is the identity conversion: this is the decimal precision required to serialize/deserialize a long double
(macro constant)

FLT_DECIMAL_DIGDBL_DECIMAL_DIGLDBL_DECIMAL_DIG

(C11)

conversion from float/double/long double to decimal with at least FLT_DECIMAL_DIG/DBL_DECIMAL_DIG/LDBL_DECIMAL_DIG digits and back is the identity conversion: this is the decimal precision required to serialize/deserialize a floating-point value. Defined to at least 6, 10, and 10 respectively, or 9 for IEEE float and 17 for IEEE double (see also the C++ analog: max_digits10)
(macro constant) minimum, normalized, positive value of float, double and long double respectively
(macro constant)

FLT_TRUE_MINDBL_TRUE_MINLDBL_TRUE_MIN

(C11)

minimum positive value of float, double and long double respectively
(macro constant) maximum finite value of float, double and long double respectively
(macro constant)

FLT_EPSILONDBL_EPSILONLDBL_EPSILON

absolute value difference between 1.0 and the next representable value for float, double and long double respectively
(macro constant) number of decimal digits that are guaranteed to be preserved in text → float/double/long double → text roundtrip without change due to rounding or overflow (see the C++ analog digits10 for detail)
(macro constant)

FLT_MANT_DIGDBL_MANT_DIGLDBL_MANT_DIG

number of base-FLT_RADIX digits that are in the floating-point mantissa and that can be represented without losing precision for float, double and long double respectively
(macro constant)

FLT_MIN_EXPDBL_MIN_EXPLDBL_MIN_EXP

minimum negative integer such that FLT_RADIX raised by power one less than that integer is a normalized float, double and long double respectively
(macro constant)

FLT_MIN_10_EXPDBL_MIN_10_EXPLDBL_MIN_10_EXP

minimum negative integer such that 10 raised to that power is a normalized float, double and long double respectively
(macro constant)

FLT_MAX_EXPDBL_MAX_EXPLDBL_MAX_EXP

maximum positive integer such that FLT_RADIX raised by power one less than that integer is a representable finite float, double and long double respectively
(macro constant)

FLT_MAX_10_EXPDBL_MAX_10_EXPLDBL_MAX_10_EXP

maximum positive integer such that 10 raised to that power is a representable finite float, double and long double respectively
(macro constant) rounding mode of floating-point arithmetic
(macro constant) specifies in what precision all arithmetic operations are done
(macro constant)

FLT_HAS_SUBNORMDBL_HAS_SUBNORMLDBL_HAS_SUBNORM

(C11)(deprecated in C23)

whether the type supports subnormal (denormal) numbers:
-1 – indeterminable, ​0​ – absent, 1 – present
(macro constant) [edit] Example
#include <float.h>
#include <math.h>
#include <stdio.h>
 
int main(void)
{
    printf("DECIMAL_DIG     = %d\n", DECIMAL_DIG);
    printf("FLT_DECIMAL_DIG = %d\n", FLT_DECIMAL_DIG);
    printf("FLT_RADIX       = %d\n", FLT_RADIX);
    printf("FLT_MIN         = %e\n", FLT_MIN);
    printf("FLT_MAX         = %e\n", FLT_MAX);
    printf("FLT_EPSILON     = %e\n", FLT_EPSILON);
    printf("FLT_DIG         = %d\n", FLT_DIG);
    printf("FLT_MANT_DIG    = %d\n", FLT_MANT_DIG);
    printf("FLT_MIN_EXP     = %d\n", FLT_MIN_EXP);
    printf("FLT_MIN_10_EXP  = %d\n", FLT_MIN_10_EXP);
    printf("FLT_MAX_EXP     = %d\n", FLT_MAX_EXP);
    printf("FLT_MAX_10_EXP  = %d\n", FLT_MAX_10_EXP);
    printf("FLT_ROUNDS      = %d\n", FLT_ROUNDS);
    printf("FLT_EVAL_METHOD = %d\n", FLT_EVAL_METHOD);
    printf("FLT_HAS_SUBNORM = %d\n", FLT_HAS_SUBNORM);
}

Possible output:

DECIMAL_DIG     = 37
FLT_DECIMAL_DIG = 9
FLT_RADIX       = 2
FLT_MIN         = 1.175494e-38
FLT_MAX         = 3.402823e+38
FLT_EPSILON     = 1.192093e-07
FLT_DIG         = 6
FLT_MANT_DIG    = 24
FLT_MIN_EXP     = -125
FLT_MIN_10_EXP  = -37
FLT_MAX_EXP     = 128
FLT_MAX_10_EXP  = 38
FLT_ROUNDS      = 1
FLT_EVAL_METHOD = 1
FLT_HAS_SUBNORM = 1
[edit] References
[edit] See also

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4