Tous | Basic Casio | C/C++/ASM | LuaFX | Graphisme | Transferts | Logiciels | Diverses astuces

Calculatrice
Toutes
Graphs 35 à 100
Graph 25
Graphs 75/85/95 (SD)
Graph 100(+)
Classpad 300/330 (+)
Fx-CG 10/20
Fx-CP 400

Retour à la liste des tutoriels
Tutoriel Casio : Se passer des opérateurs logiques
Tutoriel rédigé le : 2014-04-30 20:59  par Positon  Catégorie : Basic Casio  Calculatrice : Toutes

Discutez de ce tutoriel sur le forum >> Voir le sujet dédié (37 commentaires)

Se passer des opérateurs logiques
Bonjour à tous, je me suis rendu compte que l'on pouvait se passer de And, Or, Not et Xor... en les remplaçant par des signes arithmétiques !
Cela se fait tout simplement grâce aux conditions booléennes. Pour ceux qui ne le savent pas, une condition est considérée comme étant un nombre, et vaut 1 si elle est vraie et 0 si elle est fausse.

Ainsi, si l'on considère deux conditions A et B :
A Or B
A And B
A Xor B
Not A
équivalent respectivement à :
A+B
A*B
A-B
1-A


Et quel serait l'intérêt d'utiliser cette méthode alors ? Et bien c'est plus rapide : j'ai fais quelques tests imprécis à l'arrache et les opérateurs arithmétiques sont environ 33% plus rapide. Je pense que je vais en faire d'autres pour préciser ces chiffres.

En revanche il y a des défauts. Outre le fait que ça nuit à la compréhension du code, cette méthode est en effet plus volumineuse en terme de taille, et ce à cause des parenthèse. Ces dernières sont indispensables, regardez l'exemple suivant par exemple :
(A=1) + (C>3)

En revanche, les conditions avec Not n'en requièrent pas, ce qui ne donne non pas une perte mais un gain de place :
Not A + Not B


Conclusion :
Remplacer des opérateurs logiques par des opérateurs arithmétiques ne sert à rien si vous voulez réduire la taille de votre programme. En revanche, ils peuvent vous permettre d'accélérer ce dernier en réduisant le temps d'exécution de certaines boucles (notamment les petites, puisque la condition y est vérifiée plus fréquemment). Pour finir, cette méthode peut constituer une astuce d'optimisation systématique avec les conditions qui n'utilisent pas de =,≠,<,>,≤ ou ≥, car elle confère un gain de place et de temps.

Bref, l'idée est à creuser. Quoi qu'il en soit, n'oubliez pas que ça reste de la micro-optimisation


Discutez de ce tutoriel sur le forum >> Voir le sujet dédié (37 commentaires)

Publicité et partenaires
Casio Education
Casio éducation

TI-Planet
Casiopeia
Casiopeia
CasioFan, la communauté ClassPad
CasioFan
CodeWalrus
CodeWalrus

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2015 | Il y a 42 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Rugby Manager | Jeu de basket | Jeu de handball | Jeu de tennis | Nova Raider | Réparation téléphone | Soccer Rush | Tasty Tale

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd