What are the numeric limits in C

3 Answers

0 votes
#include <stdio.h>
#include <limits.h>

int main(void)
{
    printf("CHAR_BIT   = %d\n", CHAR_BIT);
    printf("MB_LEN_MAX = %d\n", MB_LEN_MAX);
    printf("\n");

    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", UCHAR_MAX);
    printf("\n");

    printf("SHRT_MIN   = %+d\n", SHRT_MIN);
    printf("SHRT_MAX   = %+d\n", SHRT_MAX);
    printf("USHRT_MAX  = %u\n", USHRT_MAX);
    printf("\n");

    printf("INT_MIN    = %+d\n", INT_MIN);
    printf("INT_MAX    = %+d\n", INT_MAX);
    printf("UINT_MAX   = %u\n", UINT_MAX);
    printf("\n");

    printf("LONG_MIN   = %+ld\n", LONG_MIN);
    printf("LONG_MAX   = %+ld\n", LONG_MAX);
    printf("ULONG_MAX  = %lu\n", ULONG_MAX);
    printf("\n");

    printf("LLONG_MIN  = %+lld\n", LLONG_MIN);
    printf("LLONG_MAX  = %+lld\n", LLONG_MAX);
    printf("ULLONG_MAX = %llu\n", ULLONG_MAX);
    printf("\n");

    return 0;
}



/*
run:

CHAR_BIT   = 8
MB_LEN_MAX = 5

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   = -2147483648
LONG_MAX   = +2147483647
ULONG_MAX  = 4294967295

LLONG_MIN  = -9223372036854775808
LLONG_MAX  = +9223372036854775807
ULLONG_MAX = 18446744073709551615

*/

 



answered Apr 25, 2023 by avibootz
0 votes
#include <stdio.h>
#include <float.h> 
#include <math.h>

int main(void)
{
    printf("FLT_RADIX      = %d\n", FLT_RADIX);
    printf("DECIMAL_DIG    = %d\n", DECIMAL_DIG);
    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);

    return 0;
}



/*
run:

FLT_RADIX      = 2
DECIMAL_DIG    = 17
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

*/

 



answered Apr 25, 2023 by avibootz
0 votes
#include <stdio.h>
#include <stdint.h>
#include <wchar.h>

int main(void)
{
    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);

    return 0;
}



/*
run:

PTRDIFF_MIN    = -9223372036854775808
PTRDIFF_MAX    = +9223372036854775807
SIZE_MAX       = 18446744073709551615
SIG_ATOMIC_MIN = -2147483648
SIG_ATOMIC_MAX = +2147483647
WCHAR_MIN      = +0
WCHAR_MAX      = +65535
WINT_MIN       = 0
WINT_MAX       = 65535

*/

 



answered Apr 25, 2023 by avibootz

Related questions

1 answer 132 views
1 answer 160 views
160 views asked Nov 25, 2017 by avibootz
1 answer 162 views
1 answer 145 views
145 views asked Nov 22, 2020 by avibootz
...