Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2844 connectés 

  FORUM HardWare.fr
  Programmation
  C

  intervalle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

intervalle

n°619663
dRfELL
I want to believe.
Posté le 23-01-2004 à 07:01:22  profilanswer
 

comment aficher l'intervalle de valeur d'une variable ? (int, char...)

mood
Publicité
Posté le 23-01-2004 à 07:01:22  profilanswer
 

n°619665
matafan
Posté le 23-01-2004 à 07:12:42  profilanswer
 

Tout est défini dans limits.h : INT_MIN, INT_MAX, UINT_MAX...

n°619679
dRfELL
I want to believe.
Posté le 23-01-2004 à 08:31:49  profilanswer
 

ok, ya pas un endroit ou voir toutes les fonctions de limits.h ?

n°619681
dRfELL
I want to believe.
Posté le 23-01-2004 à 08:42:10  profilanswer
 

Citation :


CHAR_BIT  Nombre de bits du type char  
 CHAR_MIN  Valeur minimale du type char  
 CHAR_MAX  Valeur maximale du type char  
 SHRT_MIN  Valeur minimale du type short  
 SHRT_MAX  Valeur maximale du type short  
 INT_MIN   Valeur minimale du type int  
 INT_MAX   Valeur maximale du type int  
 LONG_MIN  Valeur minimale du type long  
 LONG_MAX  Valeur maximale du type long  
 UCHAR_MAX   Valeur maximale du type unsigned char  
 USHRT_MAX  Valeur maximale du type unsigned short  
 UINT_MAX   Valeur maximale du type unsigned int  
 ULONG_MAX  Valeur maximale du type unsigned long  


 
j'ai trouvé ca

n°619866
Carbon_14
Posté le 23-01-2004 à 10:53:42  profilanswer
 

Dans values.h, y a (entre autres)
 
#define BITSPERBYTE 8
#define MAXSHORT    0x7fff
 
#if !defined(__FLAT__)
#define MAXINT      0x7FFF
#define HIBITS      0x8000
#define HIBITI      0x8000
#else    /* defined __FLAT__ */
#define MAXINT      0x7fffffff
#define HIBITS      0x80000000
#define HIBITI      0x80000000
#endif
 
#define MAXLONG     0x7fffffff
#define HIBITL      0x80000000
 
#define DMAXEXP     308
#define FMAXEXP     38
#define DMINEXP     -307
#define FMINEXP     -37
 
#define MAXDOUBLE   1.7976931348623158E+308
#define MAXFLOAT    3.40282347E+38F
#define MINDOUBLE   2.2250738585072014E-308
#define MINFLOAT    1.17549435E-38F
#define MAXLDOUBLE  1.1897314953572317649E+4932L
#define MINLDOUBLE  3.362103143112094E-4917L /* This isn't accurate, but it */
                                             /* will do for now. The real   */
                                             /* value should be:            */
                                             /* 3.362103143112094E-4932L    */

n°619869
chrisbk
-
Posté le 23-01-2004 à 10:55:09  profilanswer
 

c'est quoi ce commentaire foireux pour MINLDOUBLE ? ca a du lui prendre plus de tps a taper le commentaire qu'a corriger la valeur :D

n°619930
Carbon_14
Posté le 23-01-2004 à 11:33:17  profilanswer
 

Ze sais pas, y a ça dans mon Borland C++ 5.02...

n°619953
merlin-boa
Posté le 23-01-2004 à 11:48:43  profilanswer
 

Ca veux dire que la valeur max réel est 3.362103143112094E-4917L, mais que c'est pas bon, que la véritable valeur devrait être 3.362103143112094E-4932L

n°620425
dRfELL
I want to believe.
Posté le 23-01-2004 à 16:36:34  profilanswer
 

pourquoi dans limits.h INT_MAX = 21474483647

n°620430
dRfELL
I want to believe.
Posté le 23-01-2004 à 16:39:30  profilanswer
 

Citation :


#define INT_MIN         SHRT_MIN        /* minimum signed   int value */
#define INT_MAX         SHRT_MAX        /* maximum signed   int value */
#define UINT_MAX        USHRT_MAX       /* maximum unsigned int value */
#else
#define INT_MIN         LONG_MIN
#define INT_MAX         LONG_MAX


 
c'est les meme constantes pour un short ou un long?

mood
Publicité
Posté le 23-01-2004 à 16:39:30  profilanswer
 

n°620454
Taz
bisounours-codeur
Posté le 23-01-2004 à 17:01:45  profilanswer
 

allo vous vous réveillez ou quoi ? toutes ces constantes ont des valeurs spécifiques au système, seuls le symbol est portable (si tant est qu'il soit dans <limits.h> )

n°620503
dRfELL
I want to believe.
Posté le 23-01-2004 à 18:11:20  profilanswer
 

Citation :


   printf("\nUn unsigned long est compris entre %d et %d",ULONG_MIN,ULONG_MAX);
   printf("\nUn float est compris entre %d et %d",MINFLOAT,MAXFLOAT);
   printf("\nUn double est compris entre %d et %d",MINDOUBLE,MAXDOUBLE);
   printf("\nUn long double est compris entre %d et %d",MINLDOUBLE,MAXLDOUBLE);


essaie de faire ca avec values.h et limits.h c'est assez bizarre...

n°620523
SomeBugsIn​Me
life suxx
Posté le 23-01-2004 à 18:29:16  profilanswer
 

drfell a écrit :

Citation :


   printf("\nUn unsigned long est compris entre %d et %d",ULONG_MIN,ULONG_MAX);
   printf("\nUn float est compris entre %d et %d",MINFLOAT,MAXFLOAT);
   printf("\nUn double est compris entre %d et %d",MINDOUBLE,MAXDOUBLE);
   printf("\nUn long double est compris entre %d et %d",MINLDOUBLE,MAXLDOUBLE);


essaie de faire ca avec values.h et limits.h c'est assez bizarre...
 


 
bah forcément avec %d , c'est bizarre  :whistle:

n°620524
chrisbk
-
Posté le 23-01-2004 à 18:29:53  profilanswer
 

putain y'a des fois....:sweat:

n°620526
Taz
bisounours-codeur
Posté le 23-01-2004 à 18:31:32  profilanswer
 

chrisbk a écrit :

putain y'a des fois....:sweat:

....
 
j'ajoute que j'ai jamais compris les gens qui mettent le retour à la ligne en début de ligne ...

n°620532
dRfELL
I want to believe.
Posté le 23-01-2004 à 18:53:24  profilanswer
 

oh merde quel con,
copier/coller pas bon
desole pour ma connerie!!

n°620561
dRfELL
I want to believe.
Posté le 23-01-2004 à 20:24:17  profilanswer
 

j'arrive pas a afficher correctement les max et min de float, double, long double

n°620580
Carbon_14
Posté le 23-01-2004 à 21:02:30  profilanswer
 

J'ai déjà remarqué un problème de ce genre.
Le seul truc que j'avais trouvé est de "forcer" le type par float fVal = (float)MAXFLOAT et (float)MINFLOAT, sinon pb de valeur. Pourquoi ? Suis juste amateur donc pas éclairé.

n°620584
Taz
bisounours-codeur
Posté le 23-01-2004 à 21:08:34  profilanswer
 

peut-être parce que tu fais n'importe quoi ?
 

21:07:30 .:: /tmp ::. ( tty2 )--( #61 )
benoit@athlon > cat >limits.c && gcc limits.c && ./a.out
#include <float.h>
#include <stdio.h>
 
 
int main()
{
  printf("FLT_MAX %f\n"
         "FLT_MIN %f\n",
         FLT_MAX,
         FLT_MIN);
   
  return 0;
}
FLT_MAX 340282346638528859811704183484516925440.000000
FLT_MIN 0.000000

n°620586
dRfELL
I want to believe.
Posté le 23-01-2004 à 21:12:12  profilanswer
 

FLT_MAX 340282346638528859811704183484516925440.000000  
FLT_MIN 0.000000
 
c'est pas les bonnes valeurs ? le minimum c'est pas 0 si ?
c'est -3.4e-38 non?


Message édité par dRfELL le 23-01-2004 à 21:32:51
n°620593
Carbon_14
Posté le 23-01-2004 à 21:33:40  profilanswer
 

C'est en 10-38 mais on le visualise qu'en (s)printf("%e" ). Y a ss dte plus mieux mais bon...
 
EDIT : Il me semble que MINFLOAT n'est pas le plus grand des float négatifs, mais le plus petit float (positif) représentable (tout près du "zéro absolu" ).


Message édité par Carbon_14 le 23-01-2004 à 21:35:49
n°620599
dRfELL
I want to believe.
Posté le 23-01-2004 à 21:43:03  profilanswer
 

je ne trouve pas de site ou c'est indiqué ce qu'il faut mettre apres % pour chaque types... quelqu'un en connait un N

n°620612
dRfELL
I want to believe.
Posté le 23-01-2004 à 22:02:15  profilanswer
 

pour double et long double, pourquoi %e marchre pas ?
ca m'affiche +INF

n°620633
Carbon_14
Posté le 23-01-2004 à 22:25:48  profilanswer
 
n°620882
dRfELL
I want to believe.
Posté le 24-01-2004 à 16:25:42  profilanswer
 

merci ;-)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  intervalle

 

Sujets relatifs
killer une apli w32et la redemarrer juste apres à intervalle reguliers[PHP/SQL] SELECT pour intervalle de A-M et N-Z
Intervalle des caracteres speciaux ...[C] calcul d'un intervalle de temps
[VB6] intervalle de jours entre 2 dates ------------- CAS PARTICULIER[VB6] intervalle de temps
Plus de sujets relatifs à : intervalle


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)