Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.
Tous | Tutoriels du Mercredi | Basic Casio | C/C++/ASM | LuaFX | Graphisme | Transferts | Logiciels | Diverses astuces

Calculatrice
Toutes
Graph 35 à 100
Graph 25+Pro/25+E/25+E II
Graph 35+USB/75(+E)/85/95 SD
Graph 100(+)
Classpad 300/330(+)
fx-CG 10/20 (Prizm)
Classpad 400(+E)
Graph 90+E
fx-92+ SC

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)

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 239 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd