Curso de Programación en C/Prog13

De WikiCabal
Saltar a: navegación, buscar

Prog13

/* Prog13.c -- Muestra valores de algunos constantes en limit.h y float.h */

#include <stdio.h>
#include <limits.h>    // integer limitos
#include <float.h>     // floating-point limitos

int main( void )
{
  printf( "\nAlgunos límites de números de un sistema de 32-bits:\n" );
  printf( "Un byte = %d bits en este sistema.\n"
          "char mínimo: %hd y char máximo: %hd\n"
          "signed char mínimo: %hd y signed char máximo: %hd\n"
          "unsigned char mínimo: 0 y usigned char máximo: %hd\n\n"
          "short mínimo: %hd y short máximo: %hd\n"
          "unsigned short mínimo: 0 y usigned short máximo: %hu\n\n"
          "int mínimo: %d e int máximo: %d\n"
          "unsigned int mínimo: 0 y usigned int máximo: %u\n\n"
          "long mínimo: %ld y long máximo: %ld\n"
          "unsigned long mínimo: 0 y usigned long máximo: %lu\n\n"
          "long long mínimo: %lld y long long máximo: %lld\n"
          "unsigned long long mínimo: 0 y unsigned long long máximo: %llu\n\n",
           CHAR_BIT, CHAR_MIN, CHAR_MAX, SCHAR_MIN, SCHAR_MAX, UCHAR_MAX,
           SHRT_MIN, SHRT_MAX, USHRT_MAX, INT_MIN, INT_MAX, UINT_MAX, LONG_MIN,
           LONG_MAX, ULONG_MAX, LLONG_MIN, LLONG_MAX, ULLONG_MAX );

  printf( "Número de digitos en la mantisa de un float: %hd\n"
          "Mínimo número de dígitos significativos de un float: %hd\n"
          "Mínimo exponente de base 10 de un float\n"
          "con dígitos significativos completos %hd\n"
          "Máximo exponente de base 10 de un float: %hd\n\n"
          "Mínimo float normal: %e y Máximo float normal: %e\n\n"
          "float epsilon = %e\n\n",
           FLT_MANT_DIG, FLT_DIG, FLT_MIN_10_EXP, FLT_MAX_10_EXP, FLT_MIN, 
           FLT_MAX, FLT_EPSILON );

  return 0;
}

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