Autor
|
Tema: Duda sobre C (Leído 4,008 veces)
|
JPS
Desconectado
Mensajes: 17
|
¿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
|
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
|
En C tienes esta opción #include <limits.h> int intmin = INT_MIN; 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... #include <float.h> float floatmin = FLT_MIN; float floatmax = FLT_MAX;
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
Mensajes: 17
|
¡Muchas gracias a los dos, me habéis servido de mucha ayuda! ¡Ahora a experimentar!
|
|
|
En línea
|
|
|
|
dijsktra
Desconectado
Mensajes: 110
Mr Edsger Dijsktra (Tribute to)
|
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. #include <stdio.h> #include <stdlib.h> #include <limits.h> #include <float.h> int main(int argc, char** argv) { printf("CHAR_BIT : %d\n", CHAR_BIT ); printf("CHAR_MAX : %d\n", CHAR_MAX ); printf("CHAR_MIN : %d\n", CHAR_MIN ); printf("INT_MAX : %d\n", INT_MAX ); printf("INT_MIN : %d\n", INT_MIN ); printf("LONG_MAX : %ld\n", (long) LONG_MAX ); printf("LONG_MIN : %ld\n", (long) LONG_MIN ); printf("SCHAR_MAX : %d\n", SCHAR_MAX ); printf("SCHAR_MIN : %d\n", SCHAR_MIN ); printf("SHRT_MAX : %d\n", SHRT_MAX ); printf("SHRT_MIN : %d\n", SHRT_MIN ); printf("UCHAR_MAX : %d\n", UCHAR_MAX ); printf("UINT_MAX : %u\n", (unsigned int) UINT_MAX ); printf("ULONG_MAX : %lu\n", (unsigned long) ULONG_MAX ); printf("USHRT_MAX : %d\n", (unsigned short) USHRT_MAX ); printf("FLT_MAX : %g\n", (float) FLT_MAX ); printf("FLT_MIN : %g\n", (float) FLT_MIN ); printf("-FLT_MAX : %g\n", (float) -FLT_MAX ); printf("-FLT_MIN : %g\n", (float) -FLT_MIN ); printf("DBL_MAX : %g\n", (double) DBL_MAX ); printf("DBL_MIN : %g\n", (double) DBL_MIN ); printf("-DBL_MAX : %g\n", (double) -DBL_MAX ); printf("Storage size for int : %d \n", sizeof(int)); printf("Storage size for unsigned int : %d \n", sizeof(unsigned int)); printf("Storage size for unsigned long : %d \n", sizeof(unsigned long)); printf("Storage size for long long : %d \n", sizeof(long long )); printf("Storage size for unsigned long long : %d \n", sizeof(unsigned long long)); return (EXIT_SUCCESS); }
Esto cambia según la plataforma de desarrollo. En linux-x86-64, a mí me sale esto, pero entros puede salir otra cosa. 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)
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Duda sobre valores de la memoria!!!
« 1 2 »
Ingeniería Inversa
|
WILMER5
|
10
|
10,872
|
19 Noviembre 2008, 11:37 am
por Dari0s
|
|
|
[Duda] Rangos del Foro
« 1 2 ... 7 8 »
Sugerencias y dudas sobre el Foro
|
Dacan
|
72
|
25,968
|
3 Diciembre 2008, 16:35 pm
por Artikbot
|
|
|
consulta sobre rangos y puntuacion
WarZone
|
suglus
|
1
|
3,048
|
29 Julio 2009, 22:47 pm
por lotux
|
|
|
duda con rangos de direciones IP
Redes
|
nachitus
|
7
|
3,409
|
7 Noviembre 2010, 00:03 am
por nachitus
|
|
|
Duda sobre un metodo que devuelva tres valores random
« 1 2 »
Java
|
Dyabel03
|
12
|
10,137
|
13 Marzo 2011, 07:53 am
por .mokk.
|
|