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...)