elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda sobre C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre C  (Leído 2,086 veces)
JPS

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Duda sobre C
« en: 13 Enero 2018, 02:44 am »

¿Hay algún código en C que te dé el rango de valores máximo (sin pasarse) en una máquina de sus tipos de dato?

Con esta web me hago una idea base, pero quiero algo más... comprobable mediante código.

¿Alguna idea de cómo hacer el algoritmo?


En línea

fary
Colaborador
***
Desconectado Desconectado

Mensajes: 959



Ver Perfil WWW
Re: Duda sobre C
« Respuesta #1 en: 13 Enero 2018, 07:51 am »

En sistemas de 32  bits sería un DWORD, en 64 un QWORD, puede cambiar el tamaño de la variable long,int,... según el compilador que uses y para que SO lo compiles por eso C trae la función sizeof, usalá.

saludos!


En línea

Un byte a la izquierda.
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Duda sobre C
« Respuesta #2 en: 13 Enero 2018, 13:19 pm »

En C tienes esta opción

Código
  1. #include <limits.h>
  2.  
  3. int intmin = INT_MIN;
  4. int intmax = INT_MAX;

La variables contendrán su máximo y mínimo valor, lee sobre limits.h para más información de los otros tipos


Con los float, esto lleva truco...

Código
  1. #include <float.h>
  2.  
  3. float floatmin = FLT_MIN;  
  4. float floatmax = FLT_MAX;
  5.  

Los float son un tipo complicado de número, así que el resultado puede ser un poco "abstracto"
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
JPS

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Duda sobre C
« Respuesta #3 en: 13 Enero 2018, 17:30 pm »

¡Muchas gracias a los dos, me habéis servido de mucha ayuda! ¡Ahora a experimentar!
En línea

dijsktra

Desconectado Desconectado

Mensajes: 103


Mr Edsger Dijsktra (Tribute to)


Ver Perfil
Re: Duda sobre C (rangos de valores)
« Respuesta #4 en: 8 Febrero 2018, 15:59 pm »

Este programa se puede compilar y ejecutar en tu plataforma de desarrollo.
Por cierto, que no sé la fuente-url de dónde lo he sacado, pero no es propio.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <limits.h>
  4. #include <float.h>
  5.  
  6.  
  7. int main(int argc, char** argv) {
  8.  
  9.    printf("CHAR_BIT    :   %d\n", CHAR_BIT);
  10.    printf("CHAR_MAX    :   %d\n", CHAR_MAX);
  11.    printf("CHAR_MIN    :   %d\n", CHAR_MIN);
  12.    printf("INT_MAX     :   %d\n", INT_MAX);
  13.    printf("INT_MIN     :   %d\n", INT_MIN);
  14.    printf("LONG_MAX    :   %ld\n", (long) LONG_MAX);
  15.    printf("LONG_MIN    :   %ld\n", (long) LONG_MIN);
  16.    printf("SCHAR_MAX   :   %d\n", SCHAR_MAX);
  17.    printf("SCHAR_MIN   :   %d\n", SCHAR_MIN);
  18.    printf("SHRT_MAX    :   %d\n", SHRT_MAX);
  19.    printf("SHRT_MIN    :   %d\n", SHRT_MIN);
  20.    printf("UCHAR_MAX   :   %d\n", UCHAR_MAX);
  21.    printf("UINT_MAX    :   %u\n", (unsigned int) UINT_MAX);
  22.    printf("ULONG_MAX   :   %lu\n", (unsigned long) ULONG_MAX);
  23.    printf("USHRT_MAX   :   %d\n", (unsigned short) USHRT_MAX);
  24.    printf("FLT_MAX     :   %g\n", (float) FLT_MAX);
  25.    printf("FLT_MIN     :   %g\n", (float) FLT_MIN);
  26.    printf("-FLT_MAX    :   %g\n", (float) -FLT_MAX);
  27.    printf("-FLT_MIN    :   %g\n", (float) -FLT_MIN);
  28.    printf("DBL_MAX     :   %g\n", (double) DBL_MAX);
  29.    printf("DBL_MIN     :   %g\n", (double) DBL_MIN);
  30.    printf("-DBL_MAX     :  %g\n", (double) -DBL_MAX);
  31.  
  32.    printf("Storage size for int : %d \n", sizeof(int));
  33.    printf("Storage size for unsigned int : %d \n", sizeof(unsigned int));    
  34.    printf("Storage size for unsigned long : %d \n", sizeof(unsigned long));
  35.    printf("Storage size for long long : %d \n", sizeof(long long ));
  36.    printf("Storage size for unsigned long long : %d \n", sizeof(unsigned long long));        
  37.    return (EXIT_SUCCESS);
  38. }
  39.  

Esto cambia según la plataforma de desarrollo. En linux-x86-64, a mí me sale esto, pero entros puede salir otra cosa.
Código:
CHAR_BIT    :   8
CHAR_MAX    :   127
CHAR_MIN    :   -128
INT_MAX     :   2147483647
INT_MIN     :   -2147483648
LONG_MAX    :   9223372036854775807
LONG_MIN    :   -9223372036854775808
SCHAR_MAX   :   127
SCHAR_MIN   :   -128
SHRT_MAX    :   32767
SHRT_MIN    :   -32768
UCHAR_MAX   :   255
UINT_MAX    :   4294967295
ULONG_MAX   :   18446744073709551615
USHRT_MAX   :   65535
FLT_MAX     :   3.40282e+38
FLT_MIN     :   1.17549e-38
-FLT_MAX    :   -3.40282e+38
-FLT_MIN    :   -1.17549e-38
DBL_MAX     :   1.79769e+308
DBL_MIN     :   2.22507e-308
-DBL_MAX     :  -1.79769e+308
Storage size for int : 4
Storage size for unsigned int : 4
Storage size for unsigned long : 8
Storage size for long long : 8
Storage size for unsigned long long : 8

« Última modificación: 12 Febrero 2018, 09:40 am por dijsktra » En línea

Si la depuración es el proceso de eliminar fallos en el software, entonces programar debe ser el proceso de ponerlos dentro. (Edsger Dijsktra)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre valores de la memoria!!! « 1 2 »
Ingeniería Inversa
WILMER5 10 8,018 Último mensaje 19 Noviembre 2008, 11:37 am
por Dari0s
[Duda] Rangos del Foro « 1 2 ... 7 8 »
Sugerencias y dudas sobre el Foro
Dacan 72 17,844 Último mensaje 3 Diciembre 2008, 16:35 pm
por Artikbot
consulta sobre rangos y puntuacion
WarZone
suglus 1 2,238 Último mensaje 29 Julio 2009, 22:47 pm
por lotux
duda con rangos de direciones IP
Redes
nachitus 7 2,309 Último mensaje 7 Noviembre 2010, 00:03 am
por nachitus
Duda sobre un metodo que devuelva tres valores random « 1 2 »
Java
Dyabel03 12 7,584 Último mensaje 13 Marzo 2011, 07:53 am
por .mokk.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines