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

  FORUM HardWare.fr
  Programmation
  C++

  valeur trop grande... forcer un type...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

valeur trop grande... forcer un type...

n°388165
theorie du​ chaos
morte et enterrée
Posté le 09-05-2003 à 13:34:16  profilanswer
 

    if ((V <= (unsigned long)4294967295) &&
  (V > -2147483647))
 
probleme avec la ere comparaison


---------------
Les accents sont en option... j'ai un clavier qwertz.
mood
Publicité
Posté le 09-05-2003 à 13:34:16  profilanswer
 

n°388170
theshockwa​ve
I work at a firm named Koslow
Posté le 09-05-2003 à 13:36:04  profilanswer
 

V est de quel type ?


---------------
last.fm
n°388173
theorie du​ chaos
morte et enterrée
Posté le 09-05-2003 à 13:37:53  profilanswer
 

V est declare en long
en fait ca peut etre un long ou qqch de plus petit
 
et on me renvoit
assembler.c:892: warning: decimal constant is so large that it is unsigned
 
 
moi je suis tout a fait d accord pour que ce soit pas signe :d


---------------
Les accents sont en option... j'ai un clavier qwertz.
n°388175
theshockwa​ve
I work at a firm named Koslow
Posté le 09-05-2003 à 13:40:46  profilanswer
 

Theorie du chaos a écrit :

V est declare en long


 
Si il est en long, il est donc signé, donc forcément inférieur à ta valeur ... Si tu le mets en unsigned long, il est forcément supérieur à la valeur négative que tu donnes ... :heink: j'ai du mal à voir le but de ton test ...


---------------
last.fm
n°388184
theorie du​ chaos
morte et enterrée
Posté le 09-05-2003 à 13:46:34  profilanswer
 

V peut etre signe ou non...
et il me faut un test qui accepte aussi bien les longs signes que les noms signes tant que ca tient sur 32 bits


---------------
Les accents sont en option... j'ai un clavier qwertz.
n°388207
theorie du​ chaos
morte et enterrée
Posté le 09-05-2003 à 13:56:31  profilanswer
 

je peux declarer en int aussi


---------------
Les accents sont en option... j'ai un clavier qwertz.
n°388215
theshockwa​ve
I work at a firm named Koslow
Posté le 09-05-2003 à 14:00:22  profilanswer
 

Theorie du chaos a écrit :

V peut etre signe ou non...
et il me faut un test qui accepte aussi bien les longs signes que les noms signes tant que ca tient sur 32 bits


 
:heink: C'est pour faire une macro ?
 
Dans ce cas, oublie les concepts de signé ou pas signé ... parce que sinon, tes comparaisons vont foirer à chaque fois ...
-2147483647, c'est 0x80000001 si je ne m'abuse et
 4294967295, c'est 0xFFFFFFFE ...
 
Le code généré pour les comparaisons d'entiers signés est différent de celui pour les entiers non signés...
Je ne suis pas sur que tu puisses le faire comme ca ...
 


---------------
last.fm
n°388217
chrisbk
-
Posté le 09-05-2003 à 14:00:38  profilanswer
 

Theorie du chaos a écrit :

V peut etre signe ou non...
et il me faut un test qui accepte aussi bien les longs signes que les noms signes tant que ca tient sur 32 bits


ben t ennuye parce qu'en signe tu pourras pas aller plus loin que +2^31 soit 2147483648, bien inferieur a ton 4294967295 des familles...

n°388226
theorie du​ chaos
morte et enterrée
Posté le 09-05-2003 à 14:04:38  profilanswer
 

V est une valeur de reservation initialisee (en assembleur)
signe ou non...
 
et je dois verifier que cette valeur peut etre traitee par un .long
donc qu'elle est codable


---------------
Les accents sont en option... j'ai un clavier qwertz.
n°388234
theshockwa​ve
I work at a firm named Koslow
Posté le 09-05-2003 à 14:08:50  profilanswer
 

Theorie du chaos a écrit :

V est une valeur de reservation initialisee (en assembleur)
signe ou non...


 
comment tu sais si elle est signée ?
C'est pas en voyant la tête de la variable que tu vas le deviner ...
si elle est codée sur 32bits, elle passera toujours, que ce soit dans un long ou un unsigned long ...


---------------
last.fm
mood
Publicité
Posté le 09-05-2003 à 14:08:50  profilanswer
 

n°388248
Taz
bisounours-codeur
Posté le 09-05-2003 à 14:16:05  profilanswer
 

(unsigned long)4294967295
 
 
 :non:  
 
 
4294967295UL
 
 
le mieux c'est d'utiliser les macros de <limits.h>

n°388272
theorie du​ chaos
morte et enterrée
Posté le 09-05-2003 à 14:31:55  profilanswer
 

autre question... si dans un prog en assembleur...
un utilisateur saisi une valeur superieure a la valeur limite...
que fait l'assembleur?
erreur?
ou il remplace la valeur par la valeur limite?


---------------
Les accents sont en option... j'ai un clavier qwertz.
n°388277
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 09-05-2003 à 14:34:06  profilanswer
 

Theorie du chaos a écrit :

autre question... si dans un prog en assembleur...
un utilisateur saisi une valeur superieure a la valeur limite...
que fait l'assembleur?
erreur?
ou il remplace la valeur par la valeur limite?


l'assembleur ne fera rien, par contre ton système, lui, va danser la carmagnole, vu que l'utilisateur écrira dans une zone de mémoire qui ne lui appartiendra pas forcément :d


---------------
J'ai un string dans l'array (Paris Hilton)
n°388278
theorie du​ chaos
morte et enterrée
Posté le 09-05-2003 à 14:34:24  profilanswer
 

theShOcKwAvE a écrit :


 
comment tu sais si elle est signée ?
C'est pas en voyant la tête de la variable que tu vas le deviner ...
si elle est codée sur 32bits, elle passera toujours, que ce soit dans un long ou un unsigned long ...

c selon l'humeur du mec qui fait le prog en assembleur que je dois assembler :/


---------------
Les accents sont en option... j'ai un clavier qwertz.
n°388279
theorie du​ chaos
morte et enterrée
Posté le 09-05-2003 à 14:34:45  profilanswer
 

++Taz a écrit :

(unsigned long)4294967295
 
 
 :non:  
 
 
4294967295UL
 
 
le mieux c'est d'utiliser les macros de <limits.h>

deja un grand pas merci :)


---------------
Les accents sont en option... j'ai un clavier qwertz.
n°388295
theshockwa​ve
I work at a firm named Koslow
Posté le 09-05-2003 à 14:45:01  profilanswer
 

Theorie du chaos a écrit :

c selon l'humeur du mec qui fait le prog en assembleur que je dois assembler :/


Tu fais un compilateur asm ?


Message édité par theshockwave le 09-05-2003 à 14:45:35

---------------
last.fm
n°388301
chrisbk
-
Posté le 09-05-2003 à 14:50:08  profilanswer
 

theShOcKwAvE a écrit :


Tu fais un compilateur asm ?


 
on appelle ca un assembleur [:aloy]

n°388306
theshockwa​ve
I work at a firm named Koslow
Posté le 09-05-2003 à 14:53:52  profilanswer
 

chrisbk a écrit :


 
on appelle ca un assembleur [:aloy]


 
:D ouais ... mais bon ... Enfin ... ouais quoi ... :D


---------------
last.fm
n°388307
konar_spre​me
Posté le 09-05-2003 à 14:54:46  profilanswer
 

++Taz a écrit :


le mieux c'est d'utiliser les macros de <limits.h>


 
Il parle de ces defines la:
 
? minimum value for an object of type short int
SHRT_MIN -32767 // -(215^15 - 1)
? maximum value for an object of type short int
SHRT_MAX +32767 // 215^15 - 1
? maximum value for an object of type unsigned short int
USHRT_MAX 65535 // 216^16 - 1
? minimum value for an object of type int
INT_MIN -32767 // -(215^15 - 1)
? maximum value for an object of type int
INT_MAX +32767 // 215^15 - 1
? maximum value for an object of type unsigned int
UINT_MAX 65535 // 216^16 - 1
? minimum value for an object of type long int
LONG_MIN -2147483647 // -(231^31 - 1)
? maximum value for an object of type long int
LONG_MAX +2147483647 // 231^31 - 1
? maximum value for an object of type unsigned long int
ULONG_MAX 4294967295 // 232^32 - 1
 
C'est plus clair comme ca.

n°388309
chrisbk
-
Posté le 09-05-2003 à 14:54:55  profilanswer
 

theShOcKwAvE a écrit :


 
:D ouais ... mais bon ... Enfin ... ouais quoi ... :D


c'etait ma minute enculage de mouches [:ddr555]

n°388313
theshockwa​ve
I work at a firm named Koslow
Posté le 09-05-2003 à 15:02:04  profilanswer
 

chrisbk a écrit :


c'etait ma minute enculage de mouches [:ddr555]


 
en tous cas, ca change rien au fait que si c'est effectivement des chaines de caractères qu'il a en entrée, c'est au moment de la conversion vers le type voulu qu'il devra se demander si ca rentre ... Pas après !!!


---------------
last.fm
n°388315
chrisbk
-
Posté le 09-05-2003 à 15:04:22  profilanswer
 

theShOcKwAvE a écrit :


 
en tous cas, ca change rien au fait que si c'est effectivement des chaines de caractères qu'il a en entrée, c'est au moment de la conversion vers le type voulu qu'il devra se demander si ca rentre ... Pas après !!!


 
sachez  mon cher que sur ce point nos vues s'accordent parfaitement

n°388365
Taz
bisounours-codeur
Posté le 09-05-2003 à 16:05:16  profilanswer
 

KONAR > tes valeurs csont celle de ton systèmes, moi j'ai pas les meme, on est bien d'accord sur l'avantage d'utiliser ces macro

n°388385
konar_spre​me
Posté le 09-05-2003 à 16:23:29  profilanswer
 

++Taz a écrit :

KONAR > tes valeurs csont celle de ton systèmes, moi j'ai pas les meme, on est bien d'accord sur l'avantage d'utiliser ces macro


 
Si tu n'as pasd les mêmes c'est que t'as une archi 64 bits (ou 16). Sinon je vois pas pkoi.
Ce sont les valuers definies dans le standard clause  
"5.2.4.2.1 Sizes of integer types <limits.h>"
[...]Their implementation-defined values shall be equal or greater in magnitude (absolute value) to those shown, with the same sign.
Donc tu as au moins ca.

n°388395
Taz
bisounours-codeur
Posté le 09-05-2003 à 16:33:54  profilanswer
 

:non: y a pas de minimum

n°388401
konar_spre​me
Posté le 09-05-2003 à 16:37:03  profilanswer
 

++Taz a écrit :

:non: y a pas de minimum


 
C'est pas une phrase que j'ai sorti de mon cul.
Elle vient du standard C (ISO/IEC 9899:1999(E), Second edition
1999-12-01).
 
Donc a moins ke tu aies une archi autre que 32 bits, ce sont les bonnes valeurs.

n°388406
Taz
bisounours-codeur
Posté le 09-05-2003 à 16:39:28  profilanswer
 

je sais j'ai la meme, seulement t'as une petite lacune en anglais shall be
 
moi perso j'ai
 
 
#define INT_MAX  2147483647
#define INT_MIN  (-INT_MAX-1)
 
mais j'ai déjà travaillé en 16 bits ou travailler avec des gens sur des archis à char sur 7bits, etc

n°388417
konar_spre​me
Posté le 09-05-2003 à 16:49:16  profilanswer
 

++Taz a écrit :

je sais j'ai la meme, seulement t'as une petite lacune en anglais shall be
 
moi perso j'ai
 
 
#define INT_MAX  2147483647
#define INT_MIN  (-INT_MAX-1)
 
mais j'ai déjà travaillé en 16 bits ou travailler avec des gens sur des archis à char sur 7bits, etc


 
Alors plusieurs choses...
Je ne pense pas justement présenter de lacune.
Je me cite:

Citation :


[...]Their implementation-defined values shall be equal or greater in magnitude (absolute value) to those shown, with the same sign.  
Donc tu as au moins ca.


Et pour le "shall":
toujours le standard, clause 4.1

Citation :


4. Conformance
1 In this International Standard, ??shall?? is to be interpreted as a requirement on an
implementation or on a program; conversely, ??shall not?? is to be interpreted as a
prohibition.


Donc c'est pas "shall" dans le sens "ca serait bien de", c'est "shall" dans le sens "il faut, sinon tu rates"
 
Alors ta valeur ("#define INT_MAX 2147483647" ) est correcte vu kelle est superieur au minimum requis.
 
Et ca ne sert a rien de t'enerver avec tes archis 16 bits ou tes chars de 7 bits. Ces archis la sont comme les autres et doivent respecter le norme (sur une archi 16 bits mes valeurs sont kan meme bonnes)

n°388423
Taz
bisounours-codeur
Posté le 09-05-2003 à 16:51:58  profilanswer
 

je m'énerves po... enfin bref, fo utiliser les valeurs de limits.h et pas autre chose (c'est d'ailleurs plus lsibles que des 32 ou 16 magiques). et autant pour moi, la norme ANSI fixe les minima... mais fo pas negliger que pas mal d'archi ne supporte pas cette norme (dans l'indstrie justement)


Message édité par Taz le 09-05-2003 à 16:53:54
n°388513
theorie du​ chaos
morte et enterrée
Posté le 09-05-2003 à 17:49:30  profilanswer
 

merci beaucoup :)


---------------
Les accents sont en option... j'ai un clavier qwertz.
mood
Publicité
Posté le   profilanswer
 


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

  valeur trop grande... forcer un type...

 

Sujets relatifs
Type de renvoi d'une fonctionAide pour mon stage > Grande reflexion needed (part II) > XML ?
Y a t-il moyen de proteger les attributs d'une classe (type private) ?SQL sous VBA : comparaison entre 1 chaîne et 1 valeur numérique
[Validation] document type does not allow element "ul" ???Taille d'une variable de type "WORD"
[VC++] Determiner le type de connexion (bande passante dispo)...[VB] Automatisation initialisation de donnée ds un type style record
[PHP/JS] Grande chaine de car dans une fonction js.Coment récupèré valeur retourné par <input type="file" value="fic">
Plus de sujets relatifs à : valeur trop grande... forcer un type...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR