Curso de Programación en C/Prog13

De WikiCabal
Ir a la navegación Ir a la búsqueda

Prog13

 1 /* Prog13.c -- Muestra valores de algunos constantes en limit.h y float.h */
 2 
 3 #include <stdio.h>
 4 #include <limits.h>    // integer limitos
 5 #include <float.h>     // floating-point limitos
 6 
 7 int main( void )
 8 {
 9   printf( "\nAlgunos límites de números de un sistema de 32-bits:\n" );
10   printf( "Un byte = %d bits en este sistema.\n"
11           "char mínimo: %hd y char máximo: %hd\n"
12           "signed char mínimo: %hd y signed char máximo: %hd\n"
13           "unsigned char mínimo: 0 y usigned char máximo: %hd\n\n"
14           "short mínimo: %hd y short máximo: %hd\n"
15           "unsigned short mínimo: 0 y usigned short máximo: %hu\n\n"
16           "int mínimo: %d e int máximo: %d\n"
17           "unsigned int mínimo: 0 y usigned int máximo: %u\n\n"
18           "long mínimo: %ld y long máximo: %ld\n"
19           "unsigned long mínimo: 0 y usigned long máximo: %lu\n\n"
20           "long long mínimo: %lld y long long máximo: %lld\n"
21           "unsigned long long mínimo: 0 y unsigned long long máximo: %llu\n\n",
22            CHAR_BIT, CHAR_MIN, CHAR_MAX, SCHAR_MIN, SCHAR_MAX, UCHAR_MAX,
23            SHRT_MIN, SHRT_MAX, USHRT_MAX, INT_MIN, INT_MAX, UINT_MAX, LONG_MIN,
24            LONG_MAX, ULONG_MAX, LLONG_MIN, LLONG_MAX, ULLONG_MAX );
25 
26   printf( "Número de digitos en la mantisa de un float: %hd\n"
27           "Mínimo número de dígitos significativos de un float: %hd\n"
28           "Mínimo exponente de base 10 de un float\n"
29           "con dígitos significativos completos %hd\n"
30           "Máximo exponente de base 10 de un float: %hd\n\n"
31           "Mínimo float normal: %e y Máximo float normal: %e\n\n"
32           "float epsilon = %e\n\n",
33            FLT_MANT_DIG, FLT_DIG, FLT_MIN_10_EXP, FLT_MAX_10_EXP, FLT_MIN, 
34            FLT_MAX, FLT_EPSILON );
35 
36   return 0;
37 }

Resultado

[rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog13 Prog13.c
[rrc@Pridd CClase]$ ./Prog13

Algunos límites de números de un sistema de 32-bits:
Un byte = 8 bits en este sistema.
char mínimo: -128 y char máximo: 127
signed char mínimo: -128 y signed char máximo: 127
unsigned char mínimo: 0 y usigned char máximo: 255

short mínimo: -32768 y short máximo: 32767
unsigned short mínimo: 0 y usigned short máximo: 65535

int mínimo: -2147483648 e int máximo: 2147483647
unsigned int mínimo: 0 y usigned int máximo: 4294967295

long mínimo: -2147483648 y long máximo: 2147483647
unsigned long mínimo: 0 y usigned long máximo: 4294967295

long long mínimo: -9223372036854775808 y long long máximo: 9223372036854775807
unsigned long long mínimo: 0 y unsigned long long máximo: 18446744073709551615

Número de digitos en la mantisa de un float: 24
Mínimo número de dígitos significativos de un float: 6
Mínimo exponente de base 10 de un float
con dígitos significativos completos -37
Máximo exponente de base 10 de un float: 38

Mínimo float normal: 1.175494e-38 y Máximo float normal: 3.402823e+38

float epsilon = 1.192093e-07

[rrc@Pridd CClase]$

Explicación

Variables en ANSI C