Overflow addition en c
phil
-
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
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
2 réponses
-
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é. -
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;
...
}