Overflow addition en c
Fermé
phil
-
16 juil. 2006 à 21:10
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 17 juil. 2006 à 08:36
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 17 juil. 2006 à 08:36
comment récuperer les cas d'overflow en c pour l'addition ou la multiplication sur les char, short, int?
peut on recuperer cette erreur? comme les erreurs systemes?
la solution consistant pour l'addition de deux short par exemple, a les surdimensionner en long et de verifier le resultat ne m'interesse pas!!!!
les createur du langage c on t'ils propsé une solution a ce probleme.
merci
peut on recuperer cette erreur? comme les erreurs systemes?
la solution consistant pour l'addition de deux short par exemple, a les surdimensionner en long et de verifier le resultat ne m'interesse pas!!!!
les createur du langage c on t'ils propsé une solution a ce probleme.
merci
A voir également:
- Overflow addition en c
- Formule excel addition - Guide
- Bash addition ✓ - Forum Shell
- Addition et soustraction dans la même formule excel - Forum Excel
- Addition hectare are centiare excel - Forum Excel
- Status stack overflow error ✓ - Forum Programmation
2 réponses
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
5 février 2025
1 526
17 juil. 2006 à 03:57
17 juil. 2006 à 03:57
les createur du langage c on t'ils propsé une solution a ce probleme.
Non je ne crois pas. C'est plutôt aux programmeurs de prévoir leur type de leurs variables si elles risquent d'être dépassées dans leur capacité.
Non je ne crois pas. C'est plutôt aux programmeurs de prévoir leur type de leurs variables si elles risquent d'être dépassées dans leur capacité.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
17 juil. 2006 à 08:36
17 juil. 2006 à 08:36
Salut.
Je ne suis pas expert la dedans, mais si tu fait MAX+1(32XXX+1) tu as soit MIN (-32XXX), soit inf.
Si tu as "inf", c'est simple.
Sinon, tu peux définir une structure se subtituant aux entier, de façon à détecter les dépassements.
struct int2{...}
int2 operator+(int2 a,int2 b)
{
if (a>0&b>0) if (a+b<a|a+b<b) /* traite l'erreur*/ else return a+b;
if (a<0&b<0) if (a+b>a|a+b>b) /* traite l'erreur*/ else return a+b;
...
}
Je ne suis pas expert la dedans, mais si tu fait MAX+1(32XXX+1) tu as soit MIN (-32XXX), soit inf.
Si tu as "inf", c'est simple.
Sinon, tu peux définir une structure se subtituant aux entier, de façon à détecter les dépassements.
struct int2{...}
int2 operator+(int2 a,int2 b)
{
if (a>0&b>0) if (a+b<a|a+b<b) /* traite l'erreur*/ else return a+b;
if (a<0&b<0) if (a+b>a|a+b>b) /* traite l'erreur*/ else return a+b;
...
}