intervalle - C - Programmation
Marsh Posté le 23-01-2004 à 07:12:42
Tout est défini dans limits.h : INT_MIN, INT_MAX, UINT_MAX...
Marsh Posté le 23-01-2004 à 08:31:49
ok, ya pas un endroit ou voir toutes les fonctions de limits.h ?
Marsh Posté le 23-01-2004 à 08:42:10
| Citation :   | 
 
 
j'ai trouvé ca
Marsh Posté le 23-01-2004 à 10:53:42
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    */
Marsh Posté le 23-01-2004 à 10:55:09
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 
Marsh Posté le 23-01-2004 à 11:48:43
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
Marsh Posté le 23-01-2004 à 16:39:30
| Citation :   | 
 
 
c'est les meme constantes pour un short ou un long?
Marsh Posté le 23-01-2004 à 17:01:45
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> )
Marsh Posté le 23-01-2004 à 18:11:20
| Citation :   | 
 
essaie de faire ca avec values.h et limits.h c'est assez bizarre... 
Marsh Posté le 23-01-2004 à 18:29:16
| drfell a écrit : 
   | 
 
 
bah forcément avec %d , c'est bizarre   
 
Marsh Posté le 23-01-2004 à 18:31:32
| 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 ...
Marsh Posté le 23-01-2004 à 18:53:24
oh merde quel con, 
copier/coller pas bon 
desole pour ma connerie!!
Marsh Posté le 23-01-2004 à 20:24:17
j'arrive pas a afficher correctement les max et min de float, double, long double
Marsh Posté le 23-01-2004 à 21:02:30
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é.
Marsh Posté le 23-01-2004 à 21:08:34
peut-être parce que tu fais n'importe quoi ? 
 
| 21:07:30 .:: /tmp ::. ( tty2 )--( #61 )  | 
Marsh Posté le 23-01-2004 à 21:12:12
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?
Marsh Posté le 23-01-2004 à 21:33:40
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" ).
Marsh Posté le 23-01-2004 à 21:43:03
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
Marsh Posté le 23-01-2004 à 22:02:15
pour double et long double, pourquoi %e marchre pas ? 
ca m'affiche +INF
Marsh Posté le 23-01-2004 à 22:25:48
http://www.geocities.com/mmarko.ge [...] trops.html 
Et http://f1gi1.free.fr/files/TD/solu [...] rintf.html 
le début de http://cs-www.bu.edu/faculty/djy/cs210/unit07.html
Marsh Posté le 23-01-2004 à 07:01:22
comment aficher l'intervalle de valeur d'une variable ? (int, char...)