Bonjour,
je suis en train de tester l'implémentation une équation, et j'ai besoin d'être sûr que je n'ai pas de dépassement de capacité de nombre.
J'entends par " dépassement de capacité" le phénomène suivant :
NB1 prend la valeur 64 et non pas 40000, puisque unsigned char est codé sur 8 bits (sous Windows XP 32 bits).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 // quelque part dans un header typedef unsigned char UWord8 // dans le source de l'implémentation UWord8 NB1 = 200 * 200;
Est-ce qu'il éxiste un moyen de tester ça avec un système d'exception ou autre, natif au langage ?
Le seul moyen que je vois est de créer des classes UWord8 sur lesquelles je définierai les opérateurs arithmétiques, ferai les opérations avec des grands nombres et testerai la valeur avant de la retourner.
Problèmes : c'est beaucoup de boulot, et comment faire pour tester le dépassement de capacité de unsigned int ?
PS : je précise que je n'ai pas le droit d'utiliser les types flottants pour des contraintes liées au projet (soft embarqué).
Partager