#include #include #include int main(void) { unsigned char c; unsigned short s; unsigned int i; unsigned long l; c = ~0; s = ~0; i = ~0; l = ~0; c >>= 1; s >>= 1; i >>= 1; l >>= 1; /* signed values */ printf("limits char min: %20d, max: %20d\n", CHAR_MIN, CHAR_MAX); printf("comput char min: %20d, max: %20d\n", -c-1, c); printf("limits short min: %20d, max: %20d\n", SHRT_MIN, SHRT_MAX); printf("comput short min: %20d, max: %20d\n", -s-1, s); printf("limits int min: %20d, max: %20d\n", INT_MIN, INT_MAX); printf("comput int min: %20d, max: %20d\n", -i-1, i); printf("limits long min: %20ld, max: %20ld\n", LONG_MIN, LONG_MAX); printf("comput long min: %20ld, max: %20ld\n", -l-1, l); printf("limits float min: %20g, max: %20g\n", FLT_MIN, FLT_MAX); printf("limits double min: %20g, max: %20g\n", DBL_MIN, DBL_MAX); /* unsigned values */ printf("limits uchar min: %20d, max: %20u\n", 0, UCHAR_MAX); printf("comput uchar min: %20d, max: %20u\n", 0, c*2+1); printf("limits ushort min: %20d, max: %20u\n", 0, USHRT_MAX); printf("comput ushort min: %20d, max: %20u\n", 0, s*2+1); printf("limits uint min: %20d, max: %20u\n", 0, UINT_MAX); printf("comput uint min: %20d, max: %20u\n", 0, i*2+1); printf("limits ulong min: %20d, max: %20lu\n", 0, ULONG_MAX); printf("comput ulong min: %20d, max: %20lu\n", 0, l*2+1); return 0; }